Files
periscope/tests/test_deepseek_only.py
T
micheleandCursor 3e43bb6ecb Force every LLM stage onto DeepSeek and stop Anthropic Console uploads.
PROVIDER_*=anthropic and Claude fallbacks now coerce to DeepSeek, skills stay local, and default_model_version bumps without upload_skills.py.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 22:56:49 +02:00

52 lines
1.7 KiB
Python

"""Pinscope LLM routing is DeepSeek only.
Favor: every pipeline stage uses DeepSeek even if PROVIDER_* is set to
anthropic; model_for_stage stays on deepseek-flash.
Against: anthropic fallback is ignored; get_provider_by_name('anthropic')
does not construct the Anthropic SDK client.
"""
from __future__ import annotations
import pytest
from backend.config import settings
from backend.services.llm.factory import get_provider, get_provider_by_name
@pytest.fixture
def restore_routing():
snap = {
"provider_default": settings.provider_default,
"provider_validation": settings.provider_validation,
"fallback_provider_validation": settings.fallback_provider_validation,
"fallback_model_validation": settings.fallback_model_validation,
}
yield
for k, v in snap.items():
setattr(settings, k, v)
get_provider_by_name.cache_clear()
def test_stage_stays_deepseek_when_env_says_anthropic(restore_routing):
settings.provider_validation = "anthropic"
assert settings.provider_for_stage("validation") == "deepseek"
get_provider_by_name.cache_clear()
assert get_provider("validation").name == "deepseek"
assert "deepseek" in settings.model_for_stage("validation")
def test_anthropic_fallback_is_not_used(restore_routing):
settings.fallback_provider_validation = "anthropic"
settings.fallback_model_validation = "claude-sonnet-4-6"
assert settings.fallback_for_stage("validation") is None
def test_get_provider_by_name_does_not_load_anthropic(restore_routing):
get_provider_by_name.cache_clear()
try:
p = get_provider_by_name("anthropic")
assert p.name == "deepseek"
finally:
get_provider_by_name.cache_clear()