test: never call a live LLM from tests, whatever the local .env says
CI / ruff · pytest (pull_request) Successful in 1m50s
CI / ruff · pytest (pull_request) Successful in 1m50s
With OPENROUTER_API_KEY in a developer's .env the chat agent switched on in dialog tests (real API calls, spent money, flaky results). An autouse fixture turns the agent off; agent tests pass explicit providers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
"""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")
|
||||||
|
get_settings.cache_clear()
|
||||||
|
yield
|
||||||
|
get_settings.cache_clear()
|
||||||
Reference in New Issue
Block a user