import pytest_asyncio from httpx import ASGITransport, AsyncClient from sqlalchemy.ext.asyncio import async_sessionmaker from app.db import Base, engine, get_db from app.main import app TestSessionLocal = async_sessionmaker(engine, expire_on_commit=False) @pytest_asyncio.fixture(autouse=True) async def _reset_db(): async with engine.begin() as conn: await conn.run_sync(Base.metadata.drop_all) await conn.run_sync(Base.metadata.create_all) yield async def _override_get_db(): async with TestSessionLocal() as session: yield session app.dependency_overrides[get_db] = _override_get_db @pytest_asyncio.fixture async def client(): transport = ASGITransport(app=app) async with AsyncClient(transport=transport, base_url="http://test") as ac: yield ac