Files
opensquilla--opensquilla/tests/test_scripts/test_router_live_script_defaults.py
2026-07-13 13:12:33 +08:00

66 lines
2.2 KiB
Python

from __future__ import annotations
import ast
import importlib.util
import sys
import tomllib
from pathlib import Path
from opensquilla.tools.registry import ToolProfile
EXPECTED_ROUTER_MODELS = {
"c0": "deepseek/deepseek-v4-flash",
"c1": "deepseek/deepseek-v4-pro",
"c2": "z-ai/glm-5.2",
"c3": "anthropic/claude-opus-4.8",
}
def _load_smoke_module():
script_path = Path(__file__).resolve().parents[2] / "scripts" / "smoke_v4_phase3_router.py"
spec = importlib.util.spec_from_file_location("smoke_v4_phase3_router", script_path)
assert spec is not None
assert spec.loader is not None
module = importlib.util.module_from_spec(spec)
sys.modules[spec.name] = module
spec.loader.exec_module(module)
return module
def test_smoke_script_tier_defaults_match_router_defaults(tmp_path: Path) -> None:
smoke = _load_smoke_module()
assert {tier: cfg["model"] for tier, cfg in smoke.TIERS.items()} == EXPECTED_ROUTER_MODELS
config_path = tmp_path / "gateway.toml"
smoke._write_live_gateway_config(config_path, "")
data = tomllib.loads(config_path.read_text(encoding="utf-8"))
assert data["llm"]["model"] == EXPECTED_ROUTER_MODELS["c1"]
assert {
tier: cfg["model"]
for tier, cfg in data["squilla_router"]["tiers"].items()
} == EXPECTED_ROUTER_MODELS
def test_live_scripts_use_valid_registry_tool_profile_values() -> None:
valid_profiles = {profile.value for profile in ToolProfile}
script_paths = [
Path("scripts/live_provider_profile_gateway_e2e.py"),
Path("scripts/live_v4_router_evidence.py"),
]
for script_path in script_paths:
tree = ast.parse(script_path.read_text(encoding="utf-8"))
for node in ast.walk(tree):
if not isinstance(node, ast.Assign):
continue
for target in node.targets:
if not (
isinstance(target, ast.Subscript)
and isinstance(target.slice, ast.Constant)
and target.slice.value == "OPENSQUILLA_TOOL_PROFILE"
):
continue
assert isinstance(node.value, ast.Constant), script_path
assert node.value.value in valid_profiles, script_path