Checkpoint independiente · Bloque 2 · Unidad 2.2
EX-B2-06
Ausente no significa null
Un PATCH borra el título cuando el cliente no lo envía porque el código solo mira el valor final `None`.
Cómo abordarla
Coloca cada dato donde expresa mejor su intención
Inténtalo desde el starter nuevo y sin copiar el ensayo anterior. La estructura y el orden del cambio son tuyos; los tests deben demostrar el contrato.
Evidencia objetivo: Distingues path, query, header, cookie, body, formulario y archivo, incluida la ausencia frente a null.
Abrir laboratorio de código
1. Descarga y arranca
- Starter ejecutable de PATCHEndpoint defectuoso, tests de regresión y almacenamiento reiniciable en memoria.
- Matriz absent/null/defaultCasos sintéticos y estado inicial para una actualización parcial.
2. Escribe y prueba
- Antes de editar, predice resultado almacenado, respuesta y presencia para `{}`, `null`, un valor y un tipo inválido.
- Ejecuta los cuatro casos contra el starter y explica cualquier diferencia con tu predicción.
- Repara el PATCH para aplicar solo campos enviados y decide explícitamente si `null` pertenece al contrato.
- Añade regresiones independientes para omitido, `null`, valor y rechazo de tipo.
3. Demuestra el comportamiento
- Matriz predicción → observación → explicación para los cuatro payloads.
- Implementación reparada y pruebas que fallen antes y pasen después.
- Nota contractual sobre presencia, nulabilidad y default sin depender de una receta concreta.
La respuesta principal es tu código y sus pruebas. Usa este espacio solo para anotar la predicción inicial y el resultado observado.
Predicción breve antes de ejecutar
¿Qué estado debe conservar el recurso tras cada payload y qué evidencia demuestra si `title` fue enviado?
Comprueba estas tres cosas
- ¿Qué diferencia observable esperas entre omitir el campo y enviarlo como `null`?
- ¿Qué caso negativo detectaría que la implementación vuelve a perder la intención del cliente?
- ¿Qué parte de la decisión pertenece al contrato y cuál al mecanismo Pydantic?
Anota predicción, comando ejecutado y diferencia observada; el código vive en tu workspace.
Sin respuesta guardada.
Pistas opcionales
Profundización opcional
Distinguir campo omitido, `null` explícito, valor y default mediante la presencia observable en una actualización parcial.
Contexto adicional
- Trabaja únicamente dentro del alcance del bloque: una aplicación pequeña y estado en memoria.
- No hay solución oficial publicada; el material contiene huecos y defectos deliberados.
- Justifica las decisiones por el mensaje HTTP y el contrato observable, no solo porque el código arranque.
Cómo revisar tu respuesta
- Omitir no modifica el recurso.
- `null` se acepta o rechaza explícitamente.
- La implementación usa una señal de presencia y no solo una comparación con `None`.
Evidencia, revisión y reinicio
- Decisión razonada guardada localmente en la web.
- Código o informe ejecutable en el workspace temporal, más una captura de curl/OpenAPI cuando proceda.
Revisión: con Codex, utilizando la evidencia y los criterios anteriores; no se publica una solución oficial.
Reinicio: Eliminar el workspace temporal y volver a descargar el material inicial; no hay estado persistente externo.