import os import pytest from fastapi.testclient import TestClient from sqlmodel import Session, SQLModel, create_engine from app.core.db import get_session from app.main import app from app.models import Team @pytest.fixture() def test_engine(): engine = create_engine("sqlite:///./test.db", connect_args={"check_same_thread": False}) SQLModel.metadata.create_all(engine) with Session(engine) as session: session.add( Team( team_id="TH91JCS4W", team_name="tidb-community", team_domain="tidbcommunity", team_token="xoxb-test", invite_link="https://example.com/invite", ) ) session.commit() yield engine SQLModel.metadata.drop_all(engine) if os.path.exists("./test.db"): os.remove("./test.db") @pytest.fixture() def client(test_engine): def _override_get_session(): with Session(test_engine) as session: yield session app.dependency_overrides[get_session] = _override_get_session with TestClient(app) as c: yield c app.dependency_overrides.clear()