When using the fastapi.testclient.TestClient with pytest, the app doesn't use the session fixture resulting in writes to the database.
To solve this problem, pytest needs to tell the app to use the same session as used for testing. This can be done by using dependency_overrides.
@pytest.fixture(autouse=True)
def _app_session(app, session):
app.dependency_overrides[fastapi_sqla.sqla.default_session_dep] = lambda: session
At least, this is how I solved the problem. Is there a beter approach or should I send a PR to document this?
When using the
fastapi.testclient.TestClientwith pytest, the app doesn't use the session fixture resulting in writes to the database.To solve this problem, pytest needs to tell the app to use the same session as used for testing. This can be done by using
dependency_overrides.At least, this is how I solved the problem. Is there a beter approach or should I send a PR to document this?