#!/usr/bin/env python3 import pytest import pytest_asyncio from typing import Generator from fastapi.testclient import TestClient from app.main import app from app.database import Base from app.database import async_engine from app.database import async_session from app.database import engine from app.database import SessionLocal from sqlalchemy import orm _Session = orm.scoped_session(SessionLocal) @pytest.fixture def db(): Base.metadata.create_all(bind=engine) with _Session() as db_session: try: yield db_session finally: db_session.close() Base.metadata.drop_all(bind=engine) @pytest.fixture def client(db) -> Generator: with TestClient(app) as c: yield c