import pytest import app.dependencies as deps from app.config import settings from app.store import SQLiteStore from app.metrics import metrics @pytest.fixture(autouse=True) def reset_state(tmp_path, monkeypatch): """Pro Test: frische SQLite-DB, frischer Singleton-Audio-Router, Auth aus, Metriken leer. Auth-Tests schalten `settings.auth_enabled` selbst wieder ein. """ deps._store = SQLiteStore(str(tmp_path / "test.db")) deps._audio_router = None metrics.reset() monkeypatch.setattr(settings, "auth_enabled", False) monkeypatch.setattr(settings, "admin_api_key", "") yield deps._store = None deps._audio_router = None def loopback_output(): """Liefert den LoopbackOutput aus dem aktuellen Singleton-Router.""" router = deps.get_audio_router() for endpoint in router.outputs: if type(endpoint).__name__ == "LoopbackOutput": return endpoint raise AssertionError("LoopbackOutput nicht gefunden")