DeepSeek remains the only live provider; leftover Anthropic env names are coerced or ignored. Skills manifest is resolved across the split tree.
51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
"""Native Settings lives under periscope/src and keeps DeepSeek routing."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
import backend.config as config
|
|
from backend.config import Settings, settings
|
|
|
|
|
|
def test_config_module_is_src():
|
|
path = Path(config.__file__).resolve()
|
|
assert path.name == "config.py"
|
|
assert "src" in path.parts
|
|
assert "Native Periscope overlay" not in path.read_text(encoding="utf-8")[:400]
|
|
|
|
|
|
def test_deepseek_defaults_and_anthropic_coercion():
|
|
assert Settings.model_fields["provider_default"].default == "deepseek"
|
|
assert Settings.model_fields["deepseek_model"].default == "deepseek-flash"
|
|
assert Settings.model_fields["model_pintable_deepseek"].default == "deepseek-flash"
|
|
assert settings.provider_for_stage("pintable") == "deepseek"
|
|
|
|
snap = settings.provider_validation
|
|
try:
|
|
settings.provider_validation = "anthropic"
|
|
assert settings.provider_for_stage("validation") == "deepseek"
|
|
assert "deepseek" in settings.model_for_stage("validation")
|
|
finally:
|
|
settings.provider_validation = snap
|
|
|
|
|
|
def test_anthropic_fallback_is_none():
|
|
snap_p = settings.fallback_provider_validation
|
|
snap_m = settings.fallback_model_validation
|
|
try:
|
|
settings.fallback_provider_validation = "anthropic"
|
|
settings.fallback_model_validation = "claude-sonnet-4-6"
|
|
assert settings.fallback_for_stage("validation") is None
|
|
finally:
|
|
settings.fallback_provider_validation = snap_p
|
|
settings.fallback_model_validation = snap_m
|
|
|
|
|
|
def test_skills_manifest_is_readable():
|
|
version = settings.get_default_model_version()
|
|
assert version
|
|
skill_id, latest = settings.get_skill("extract-pintable")
|
|
assert skill_id.startswith("skill_")
|
|
assert latest
|