"""Test bootstrap. Runs the suite against a throwaway in-memory SQLite database and the tiny fixture catalog, so no PostgreSQL server is needed. Environment variables must be set before any app module is imported, because config reads them at import time. """ import os os.environ["DATA_DIR"] = os.path.join(os.path.dirname(__file__), "fixtures") os.environ["DATABASE_URL"] = "sqlite://" os.environ["AUTO_INIT_DB"] = "false" os.environ["COOKIE_SECURE"] = "false" import pytest # noqa: E402 from app import db # noqa: E402 from app.models import Base # noqa: E402 @pytest.fixture(autouse=True) def fresh_db(): """Give every test an empty schema and a clean login throttle.""" engine = db.get_engine() Base.metadata.drop_all(bind=engine) Base.metadata.create_all(bind=engine) from app.auth import throttle throttle.clear() yield