import pytest from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.pool import StaticPool from app.db import Base @pytest.fixture() def db_session(): engine = create_engine( "sqlite:///:memory:", connect_args={"check_same_thread": False}, poolclass=StaticPool, ) Base.metadata.create_all(engine) Session = sessionmaker(bind=engine) session = Session() try: yield session finally: session.close() Base.metadata.drop_all(engine)