"""Изоляция тестов от локального .env: секреты сбрасываются до импорта приложения.""" from __future__ import annotations import os # Не ходим в реальные Vault/Grafana/Forgejo/Postgres при прогоне тестов for key in ( "DATABASE_URL", "VAULT_ADDR", "VAULT_TOKEN", "GRAFANA_URL", "GRAFANA_SERVICE_ACCOUNT_TOKEN", "FORGEJO_URL", "FORGEJO_TOKEN", "GRAFANA_WEBHOOK_SECRET", "GRAFANA_SOURCES_JSON", ): os.environ.pop(key, None) os.environ["DATABASE_URL"] = "" os.environ["VAULT_ADDR"] = "" os.environ["GRAFANA_URL"] = "" os.environ["FORGEJO_URL"] = "" import pytest from fastapi.testclient import TestClient from onguard24.main import app def pytest_configure() -> None: """Дополнительно: гарантировать пустые интеграции.""" os.environ.setdefault("DATABASE_URL", "") @pytest.fixture def client() -> TestClient: """Контекстный менеджер — отрабатывает lifespan (pool, settings в state).""" with TestClient(app) as c: yield c