import pytest from sqlalchemy.pool import StaticPool from sqlmodel import Session, SQLModel, create_engine from fastapi.testclient import TestClient from app.models import EntityCache, EntityFlag, AuditLog from app.database import set_engine, get_session @pytest.fixture(name="engine") def engine_fixture(): engine = create_engine( "sqlite:///:memory:", connect_args={"check_same_thread": False}, poolclass=StaticPool, ) SQLModel.metadata.create_all(engine) set_engine(engine) yield engine @pytest.fixture(name="session") def session_fixture(engine): with Session(engine) as session: yield session @pytest.fixture(name="client") def client_fixture(engine): from app.main import app def override_get_session(): with Session(engine) as session: yield session app.dependency_overrides[get_session] = override_get_session client = TestClient(app) yield client app.dependency_overrides.clear()