INNER CODE UNIT · Python
patch_new_engine
dialoguemd/fastapi-sqla · fastapi_sqla/_pytest_plugin.py:112
def patch_new_engine(request: FixtureRequest, sqla_connection: Connection):
"""So that all DB operations are never written to db for real."""
if "dont_patch_engines" in request.keywords:
yield
else:
with sqla_connection.begin() as transaction:
with patch("fastapi_sqla.sqla.new_engine", return_value=sqla_connection):
yield
transaction.rollback()
@fixture
def session_factory(
sqla_connection: Connection, sqla_reflection, patch_new_engine
) -> sessionmaker:
return sessionmaker(bind=sqla_connection)