5. Fixtures
Fixture básica
Una función decorada con @pytest.fixture provee un valor a los tests que la declaran como argumento.
Yield y limpieza
Después de yield, el código corre como teardown (útil para archivos temporales, conexiones, etc.).
Scope
scope="function"(default): una vez por test.scope="module": compartida en el módulo.scope="session": una vez por ejecución de pytest.
Ejercicio 1
Definí una fixture lista_vacia que devuelva [] y un test que haga append(1) y compruebe longitud 1.
Ver solución propuesta
Ejercicio 2
¿Cuándo elegirías scope="module" para una fixture costosa de crear?
Ver idea guía
Cuando el recurso es seguro de compartir entre tests del mismo archivo y crearlo en cada función sería lento (p. ej. cargar un modelo grande en memoria).