24 lines
1.2 KiB
Python
24 lines
1.2 KiB
Python
"""Test-Isolation: Tests dürfen NIE echte Keys/Dienste aus der lokalen .env oder der Shell erreichen."""
|
|
import os
|
|
import tempfile
|
|
|
|
os.environ["ONYSCRIBE_SKIP_DOTENV"] = "1"
|
|
os.environ["ALLOW_NO_AUTH_LIVE"] = "true" # Tests laufen ohne Login; der Guard wird separat getestet # .env nicht einlesen
|
|
for var in ("CORTECS_API_KEY", "ONYVA_LOGIN_API_KEY", "MITTWALD_API_TOKEN", "MITTWALD_API_BASE", "DEPLOY_LIVE", "OIDC_SYNC_LIVE",
|
|
"AUTH_ENABLED", "OIDC_CLIENT_ID", "OIDC_CLIENT_SECRET", "OIDC_REDIRECT_URI", "OIDC_LOGOUT_REDIRECT_URI", "OIDC_ISSUER",
|
|
"ADMIN_ALLOWED_EMAILS", "DEPLOY_ALLOWED_TENANTS", "CORE_RELEASE_TOKEN", "ADMIN_REQUIRED_ROLE", "SECRET_KEY", "APP_COOKIE_SECURE"):
|
|
os.environ.pop(var, None)
|
|
os.environ["DATABASE_URL"] = f"sqlite:///{tempfile.mkdtemp()}/test.db"
|
|
|
|
import pytest # noqa: E402
|
|
|
|
|
|
@pytest.fixture(scope="module", autouse=True)
|
|
def fresh_db():
|
|
"""Jedes Testmodul startet mit leerer Datenbank (die Module teilen sich sonst Zustand über die Temp-DB)."""
|
|
from app.db import Base, engine, init_db
|
|
from app import models # noqa: F401
|
|
Base.metadata.drop_all(engine)
|
|
init_db()
|
|
yield
|