import pytest from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from fastapi.testclient import TestClient from app.database import Base, get_db from app.main import app SQLALCHEMY_DATABASE_URL = "postgresql://postgres:postgres123@postgres:5432/support_db_test" engine = create_engine(SQLALCHEMY_DATABASE_URL) TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) @pytest.fixture def db_session(): Base.metadata.drop_all(bind=engine) # Сначала удаляем все таблицы Base.metadata.create_all(bind=engine) # Создаем таблицы заново session = TestingSessionLocal() try: yield session finally: session.close() Base.metadata.drop_all(bind=engine) @pytest.fixture def client(db_session): def override_get_db(): try: yield db_session finally: db_session.close() app.dependency_overrides[get_db] = override_get_db yield TestClient(app) del app.dependency_overrides[get_db]