| import os |
| import sys |
|
|
| |
| sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) |
|
|
| import pytest |
| from fastapi.testclient import TestClient |
| from sqlalchemy import create_engine |
| from sqlalchemy.orm import sessionmaker |
| from main import app |
| from infra.database import Base, get_db |
|
|
| |
| SQLALCHEMY_DATABASE_URL = "sqlite:///:memory:" |
|
|
| engine = create_engine( |
| SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False} |
| ) |
| TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) |
|
|
|
|
| @pytest.fixture(scope="session", autouse=True) |
| def setup_db(): |
| Base.metadata.create_all(bind=engine) |
| yield |
| Base.metadata.drop_all(bind=engine) |
|
|
|
|
| def override_get_db(): |
| try: |
| db = TestingSessionLocal() |
| yield db |
| finally: |
| db.close() |
|
|
|
|
| app.dependency_overrides[get_db] = override_get_db |
|
|
|
|
| @pytest.fixture(scope="module") |
| def client(): |
| with TestClient(app) as c: |
| yield c |
|
|