"""Shared test fixtures. Every test gets a fresh in-memory SQLite database so tests are isolated, fast, and leave no artifacts on disk. """ import pytest import pytest_asyncio from sqlmodel import Session from sqlmodel import SQLModel from sqlmodel import create_engine from sqlmodel.pool import StaticPool from transcription.db.runtime import dispose_database_runtime from transcription.db.runtime import get_session @pytest.fixture def session(): """Provide a clean synchronous database session for sync tests.""" engine = create_engine( "sqlite://", connect_args={"check_same_thread": False}, poolclass=StaticPool, ) SQLModel.metadata.create_all(engine) with Session(engine) as sync_session: yield sync_session @pytest_asyncio.fixture async def async_session(): """Provide a clean asynchronous database session for async tests.""" async with get_session() as async_session: yield async_session await dispose_database_runtime()