fix(tests): адреса провайдеров из окружения ломали прогон на машине владельца
На машине владельца задана ANTHROPIC_BASE_URL=https://api.anthropic.com, и из-за неё test_claude_health_check_real_probe падал: адаптер строил ".../models" вместо ".../v1/models". Код при этом верен — подставлялось значение из окружения вместо умолчания. Проверено: со снятой переменной 486 passed, с заданной — одно падение. Набор обязан давать одинаковый результат на любой машине; это то же требование герметичности, ради которого делался A33. Добавлена автоматическая фикстура, убирающая восемь переменных *_BASE_URL на время каждого теста. После правки прогон с заданной переменной даёт 486 passed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
a677449b9b
commit
6e6d912a50
1 changed files with 24 additions and 0 deletions
|
|
@ -99,3 +99,27 @@ def block_external_network_in_hermetic_tests(request, monkeypatch):
|
||||||
def pytest_configure(config):
|
def pytest_configure(config):
|
||||||
config.addinivalue_line("markers", "ui: mark test as requiring UI environment")
|
config.addinivalue_line("markers", "ui: mark test as requiring UI environment")
|
||||||
|
|
||||||
|
# Переменные окружения провайдеров не должны протекать в тесты.
|
||||||
|
#
|
||||||
|
# На машине владельца задана ANTHROPIC_BASE_URL=https://api.anthropic.com, и
|
||||||
|
# из-за неё test_claude_health_check_real_probe падал: адаптер строил
|
||||||
|
# ".../models" вместо ".../v1/models", хотя код верен, а подставилось значение
|
||||||
|
# из окружения. Набор обязан давать одинаковый результат на любой машине —
|
||||||
|
# это то же требование герметичности, ради которого делался A33.
|
||||||
|
_PROVIDER_BASE_URL_VARS = (
|
||||||
|
"ANTHROPIC_BASE_URL",
|
||||||
|
"CODEX_BASE_URL",
|
||||||
|
"DEEPSEEK_BASE_URL",
|
||||||
|
"LOCAL_LLM_BASE_URL",
|
||||||
|
"NVIDIA_BASE_URL",
|
||||||
|
"OLLAMA_BASE_URL",
|
||||||
|
"OPENCODE_GO_BASE_URL",
|
||||||
|
"OPENROUTER_BASE_URL",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(autouse=True)
|
||||||
|
def _isolate_provider_base_urls(monkeypatch):
|
||||||
|
"""Убрать адреса провайдеров из окружения на время каждого теста."""
|
||||||
|
for name in _PROVIDER_BASE_URL_VARS:
|
||||||
|
monkeypatch.delenv(name, raising=False)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue