37 lines
781 B
Python
37 lines
781 B
Python
#!/bin/python
|
|
|
|
import os
|
|
from collections.abc import Generator
|
|
|
|
os.environ["DATABASE_URL"] = "sqlite://"
|
|
|
|
import pytest
|
|
from alembic.config import Config
|
|
from sqlalchemy import StaticPool, create_engine
|
|
from sqlalchemy.orm import Session, sessionmaker
|
|
|
|
from alembic import command
|
|
from src.db import set_engine
|
|
|
|
|
|
@pytest.fixture()
|
|
def db_session() -> Generator[Session]:
|
|
engine = create_engine(
|
|
"sqlite://",
|
|
connect_args={"check_same_thread": False},
|
|
poolclass=StaticPool,
|
|
)
|
|
|
|
set_engine(engine)
|
|
|
|
alembic_cfg = Config("alembic.ini")
|
|
command.upgrade(alembic_cfg, "head")
|
|
|
|
SessionLocal = sessionmaker(bind=engine)
|
|
session = SessionLocal()
|
|
try:
|
|
yield session
|
|
finally:
|
|
session.close()
|
|
engine.dispose()
|