36 lines
836 B
Python
36 lines
836 B
Python
"""Общие фикстуры для тестов."""
|
|
import os
|
|
|
|
os.environ.setdefault("DATABASE_URL", "sqlite:///./_test.db")
|
|
os.environ.setdefault("JWT_SECRET", "test-secret")
|
|
os.environ.setdefault("BOT_SERVICE_TOKEN", "svc-token")
|
|
|
|
import pytest # noqa: E402
|
|
from fastapi.testclient import TestClient # noqa: E402
|
|
|
|
import app.models # noqa: E402,F401
|
|
from app.db.session import Base, SessionLocal, engine # noqa: E402
|
|
from app.main import app # noqa: E402
|
|
|
|
|
|
@pytest.fixture(scope="session", autouse=True)
|
|
def _setup_db():
|
|
Base.metadata.drop_all(engine)
|
|
Base.metadata.create_all(engine)
|
|
yield
|
|
Base.metadata.drop_all(engine)
|
|
|
|
|
|
@pytest.fixture()
|
|
def db():
|
|
session = SessionLocal()
|
|
try:
|
|
yield session
|
|
finally:
|
|
session.close()
|
|
|
|
|
|
@pytest.fixture()
|
|
def client():
|
|
return TestClient(app)
|