set_properties() silently ignores per-property PROPPATCH failures (regression since v3.0)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
Línea de trabajo
Empieza en davobject.py con DAVObject.set_properties() y _post_set_properties; después, inspecciona DAVResponse.all_statuses_ok() y las pruebas unitarias existentes para las actualizaciones de propiedades. Reproduce el problema con una respuesta 207 que contenga un estado 403 para una propiedad. El trabajo estará terminado cuando set_properties() informe de ese fallo y una prueba unitaria cubra la respuesta.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Disclaimer: AI-generated issue, written by Claude Opus 5.5 (Claude Code). I wanted to delete some old code review documents, but apparently they still contained some unhandled findings.
Since v3.0, DAVObject.set_properties() (davobject.py:590) only raises PropsetError when the HTTP status is >= 400. A server that answers 207 Multi-Status with a per-property 403 Forbidden or 409 (e.g. a read-only or protected property) is reported as success. v2.2.6 checked every DAV:status in the reply.
Repro: a 207 reply with <propstat><prop><displayname/></prop><status>HTTP/1.1 403 Forbidden</status></propstat>, then set_properties([dav.DisplayName("x")]) returns normally. Fix: use DAVResponse.all_statuses_ok() (or the per-propstat check) in _post_set_properties, and add a unit test.
- Lenguaje dominante
- Python
- Estrellas
- 412
- Forks
- 113
- Merge medio
- 11 h 37 min
- PR fusionados (30 d)
- 50
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de python-caldav/caldav
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
python-caldav/caldav#799 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
python-caldav/caldav#788 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
python-caldav/caldav#687 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 75/100
python-caldav/caldav#796 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 66/100
python-caldav/caldav#795 ·
Los mantenedores suelen responder en 1 día
Todos los issues de python-caldav/caldav
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
mihai-vlc/sublime-jsfmt#56 ·
-
comp/cli comp/plugins P2 type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
NousResearch/hermes-agent#141917 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Go device SDK: Whisper transcriber keeps buffering and transcribing audio appended after Stop()Posiblemente ocupada @apoorvdarshan la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
BasedHardware/omi#22770 ·
Los mantenedores suelen responder en 1 día
-
bug needs-acceptance wg/router-models-inference-runtime
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
vllm-project/semantic-router#5295 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
huggingface/huggingface_hub#5210 ·
Los mantenedores suelen responder en 1 día