Fix async_client fixture to patch engine with in-memory DB
The fixture accepted in_memory_engine but never actually patched database.engine or api.app.engine, causing tests to hit the real SQLite path which fails in CI where data/ doesn't exist.
This commit is contained in:
parent
aa21e926bb
commit
909cb8e04b
1 changed files with 12 additions and 9 deletions
|
|
@ -165,25 +165,28 @@ async def async_client(
|
||||||
in_memory_engine: Engine, mock_user: User
|
in_memory_engine: Engine, mock_user: User
|
||||||
) -> AsyncGenerator[AsyncClient, None]:
|
) -> AsyncGenerator[AsyncClient, None]:
|
||||||
"""Create an AsyncClient for API testing with mock auth."""
|
"""Create an AsyncClient for API testing with mock auth."""
|
||||||
from api.app import app
|
import database
|
||||||
|
import api.app as api_app
|
||||||
from api.auth import get_current_user
|
from api.auth import get_current_user
|
||||||
|
|
||||||
|
app = api_app.app
|
||||||
|
|
||||||
# Override dependencies
|
# Override dependencies
|
||||||
app.dependency_overrides[get_current_user] = lambda: mock_user
|
app.dependency_overrides[get_current_user] = lambda: mock_user
|
||||||
|
|
||||||
# Patch the engine used by the repository
|
# Patch the engine so the API uses the in-memory database
|
||||||
original_engine = None
|
original_db_engine = database.engine
|
||||||
try:
|
original_app_engine = api_app.engine
|
||||||
from database import engine as db_engine
|
database.engine = in_memory_engine
|
||||||
original_engine = db_engine
|
api_app.engine = in_memory_engine
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
transport = ASGITransport(app=app)
|
transport = ASGITransport(app=app)
|
||||||
async with AsyncClient(transport=transport, base_url="http://test") as client:
|
async with AsyncClient(transport=transport, base_url="http://test") as client:
|
||||||
yield client
|
yield client
|
||||||
|
|
||||||
# Clean up dependency overrides
|
# Restore original engines and clean up
|
||||||
|
database.engine = original_db_engine
|
||||||
|
api_app.engine = original_app_engine
|
||||||
app.dependency_overrides.clear()
|
app.dependency_overrides.clear()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue