Elegir espacio

Dos espacios

¿Qué quieres consultar?

Elige el espacio al que quieres entrar.

Biblioteca FastAPIComposición

Práctica focalizada · Bloque 3 · Unidad 3.2

EX-B3-09

Demostrar el ciclo de vida de un recurso

Una ruta abre y cierra manualmente un audit sink. Otro endpoint omite el cierre al lanzar una excepción y la prueba solo comprueba el status.

  • Escribir y ejecutar código
  • Debugging con traza
  • Media
  • Apoyo ligero
  • Starter ejecutable

Cómo abordarla

Haz visible el árbol y el ciclo de vida

Ejecuta primero el baseline. Después modifica la frontera indicada, escribe una regresión positiva y otra negativa y conserva la salida real.

Evidencia objetivo: OpenAPI conserva sus parámetros, la configuración falla pronto y el recurso se libera tanto en éxito como en error.

Abrir laboratorio de código

1. Descarga y arranca

2. Escribe y prueba

  1. Predice la traza de éxito y de fallo antes de ejecutar.
  2. Reproduce el recurso abierto después del error y conserva la evidencia.
  3. Introduce una dependencia con yield que libere en finally e inyéctala en ambas operaciones.
  4. Prueba éxito, fallo, aislamiento entre peticiones y orden de la traza.

3. Demuestra el comportamiento

  • Código corregido y tests de lifecycle.
  • Cronología prevista y observada para ambos caminos.
  • Explicación del scope usado y de una alternativa descartada.

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é eventos deben aparecer antes, durante y después de la operación, y qué aserción demuestra que el cleanup no depende del camino feliz?

Secuencia que debes demostrar

Traza objetivo por petición: open → use → close. El caso /audit/fail conserva su error y aun así termina en close.

Comprueba estas tres cosas

  1. ¿Qué ocurre antes de yield?
  2. ¿Qué valor recibe la operación?
  3. ¿Qué excepción no debe desaparecer durante el cleanup?

Anota predicción, comando ejecutado y diferencia observada; el código vive en tu workspace.

Sin respuesta guardada.

Pistas opcionales

Pista única · Protege la salida
  • Crea el recurso antes de yield.
  • Coloca close en finally y deja que la excepción siga su curso.
Profundización opcional

Mover adquisición y liberación a una dependencia con yield y demostrar el orden exacto en éxito y fallo.

Contexto adicional

  • El recurso es un fake local; no añadas base de datos, red ni transacciones.
  • Usa try/finally y no conviertas el error deliberado en una respuesta exitosa.
  • Mantén la política por defecto de scope y explica cuándo se ejecuta el cierre.

Decisiones abiertas

  • Puedes registrar la traza en el fake o inyectar un recorder separado, pero su estado debe aislarse entre tests.

Cómo revisar tu respuesta

  • Cada petición abre un recurso nuevo y lo cierra exactamente una vez.
  • La traza de éxito y la de fallo terminan en close.
  • El error deliberado conserva su status y no es absorbido por la dependencia.
  • La operación usa el valor cedido y no ejecuta cleanup manual.
  • La prueba observa el estado después de completar el ciclo request/response.

Evidencia, revisión y reinicio

  • Predicción temporal para éxito y excepción.
  • Trazas open/use/close observadas por petición.
  • Tests que prueban cleanup después de 200 y después de error sin tragarse la excepción.

Revisión: con Codex, utilizando la evidencia y los criterios anteriores; no se publica una solución oficial.

Reinicio: Volver a descomprimir ex-b3-09-yield.zip; el audit sink es un fake en memoria y no abre archivos ni conexiones.