在 运行 quart 中的 pytest 时禁用 before_serving 函数

Disable before_serving function while running the pytest in quart

我正在使用 Quart 应用程序。

我正在我的 before_serving(app_initionalization) 函数中调用一个服务,我不想在 pytests 中调用它。实际上,我想禁用我的 before_serving 函数或类似模拟它的东西。

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

这是我的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

您的灯具将 运行 服务前启动功能,因为它使用 test_app

async with app.test_app() as 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
    return app