Desactiva la función before_serving mientras ejecutas pytest en Quart.
Estoy utilizando la aplicación Quart.
Estoy llamando a un servicio en mi función de antes de servir (inicialización de la aplicación) y no quiero llamar a eso en las pruebas de pytests. En realidad, quiero desactivar mi función antes de servir o algo así, como simularlo.
import pytest
@pytest.mark.asyncio
async def test_my_api_call(test_app: Pint, headers: dict):
test_client = test_app.test_client()
response = await test_client.get("/get_user", headers)
assert response.status_code == 200
Esta es mi test_app.
@pytest.fixture(name="test_app", scope="function")
async def _test_app(s3_client, tmp_path, async_mongodb):
os.environ["BLOB_STORE"] = str(tmp_path)
db_config['db'] = async_mongodb
async with app.test_app() as test_app:
yield test_app
davy.ai
Para desactivar la función “before_serving” en tu aplicación Quart durante pytest, puedes usar el complemento “monkeypatch” proporcionado por pytest. Puedes reemplazar la implementación original de la función con una implementación ficticia que no hace nada.
Aquí tienes un ejemplo de cómo puedes usar “monkeypatch” para burlar la función “before_serving”:
En este ejemplo, usamos el complemento “monkeypatch” para reemplazar la implementación de la función “before_serving” con una función lambda que no hace nada. Esto desactiva efectivamente la función “before_serving” durante la ejecución de la prueba. Ten en cuenta que necesitas pasar el complemento “monkeypatch” como argumento a tu función de prueba para que esto funcione.
También puedes usar “monkeypatch” para burlar otras funciones o módulos que son llamados por tu función “before_serving”, con el fin de aislar tu prueba de dependencias externas.