from collections.abc import AsyncIterator import pytest_asyncio from sqlalchemy import event from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine from kbqa.database import Base import kbqa.models # noqa: F401 @pytest_asyncio.fixture async def sqlite_engine(tmp_path) -> AsyncIterator[AsyncEngine]: engine = create_async_engine(f"sqlite+aiosqlite:///{tmp_path / 'test.sqlite3'}") @event.listens_for(engine.sync_engine, "connect") def enable_foreign_keys(connection, _record) -> None: connection.execute("PRAGMA foreign_keys=ON") async with engine.begin() as connection: await connection.run_sync(Base.metadata.create_all) yield engine await engine.dispose()