"""Test-wide isolation: a developer's local `.env` (e.g. OPENROUTER_API_KEY) must never make tests call a real LLM provider — that costs money and makes results depend on the network. Agent tests pass explicit providers/settings; everything else runs with the chat agent off.""" import pytest from app.config import get_settings @pytest.fixture(autouse=True) def _no_live_llm(monkeypatch: pytest.MonkeyPatch): monkeypatch.setenv("CHAT_AGENT", "off") monkeypatch.setenv("OPENROUTER_API_KEY", "") monkeypatch.setenv("LLM_PROVIDER", "mock") # Tests cover the clinical protocol by default (blocking crisis); demo-mode tests flip it explicitly. monkeypatch.setenv("CRISIS_BLOCKING", "true") get_settings.cache_clear() yield get_settings.cache_clear()