"""Pytest configuration""" import pytest from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from app.models.base import Base from app.core.database import get_db from app.main import app # Use in-memory SQLite for tests SQLALCHEMY_DATABASE_URL = "sqlite:///./test.db" engine = create_engine( SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False}, ) TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) @pytest.fixture(scope="function") def db(): """Create fresh database for each test""" Base.metadata.create_all(bind=engine) yield TestingSessionLocal() Base.metadata.drop_all(bind=engine) @pytest.fixture def client(db): """Test client""" def override_get_db(): try: yield db finally: db.close() app.dependency_overrides[get_db] = override_get_db from fastapi.testclient import TestClient return TestClient(app)