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

103 lines
3.5 KiB
Python

from __future__ import annotations
from opensquilla.gateway.config import GatewayConfig, _router_tier_profile_defaults
from opensquilla.onboarding.mutations import upsert_llm_provider, upsert_router
def test_fresh_config_uses_model_router_not_ensemble() -> None:
cfg = GatewayConfig()
assert cfg.squilla_router.enabled is True
assert cfg.llm_ensemble.enabled is False
def test_openrouter_chat_model_save_seeds_packaged_router_preset() -> None:
res = upsert_llm_provider(
GatewayConfig(),
provider_id="openrouter",
model="deepseek/deepseek-v4-pro",
api_key="sk-test",
)
assert res.config.squilla_router.enabled is True
assert res.config.squilla_router.tier_profile == "openrouter"
def test_non_packaged_chat_model_save_seeds_synthesized_router_tiers() -> None:
res = upsert_llm_provider(
GatewayConfig(),
provider_id="anthropic",
model="claude-sonnet-4-6",
api_key="sk-test",
)
router = res.config.squilla_router
assert router.enabled is True
assert router.tier_profile is None
assert set(router.tiers) >= {"c0", "c1", "c2", "c3"}
for tier_name in ("c0", "c1", "c2", "c3"):
assert router.tiers[tier_name]["provider"] == "anthropic"
assert router.tiers[tier_name]["model"] == "claude-sonnet-4-6"
def test_legacy_openrouter_mix_exact_preset_save_writes_canonical_recommended() -> None:
cfg = GatewayConfig(
# openrouter-mix requires the openrouter provider, which is no longer
# the built-in default.
llm={"provider": "openrouter"},
squilla_router={
"enabled": True,
"tier_profile": None,
"tiers": _router_tier_profile_defaults("openrouter"),
}
)
res = upsert_router(cfg, mode="openrouter-mix")
assert res.public_payload["mode"] == "recommended"
assert res.config.squilla_router.enabled is True
assert res.config.squilla_router.tier_profile == "openrouter"
def test_legacy_openrouter_mix_model_difference_saves_custom_inline_tiers() -> None:
tiers = _router_tier_profile_defaults("openrouter")
tiers["c3"] = dict(tiers["c3"], model="z-ai/glm-5.2")
cfg = GatewayConfig(
# openrouter-mix requires the openrouter provider, which is no longer
# the built-in default.
llm={"provider": "openrouter"},
squilla_router={
"enabled": True,
"tier_profile": None,
"tiers": tiers,
}
)
res = upsert_router(cfg, mode="openrouter-mix", tiers=tiers)
assert res.public_payload["mode"] == "custom"
assert res.config.squilla_router.enabled is True
assert res.config.squilla_router.tier_profile is None
assert res.config.squilla_router.tiers["c3"]["model"] == "z-ai/glm-5.2"
def test_legacy_openrouter_mix_description_difference_saves_custom_inline_tiers() -> None:
tiers = _router_tier_profile_defaults("openrouter")
tiers["c1"] = dict(tiers["c1"], description="Operator edited description.")
cfg = GatewayConfig(
# openrouter-mix requires the openrouter provider, which is no longer
# the built-in default.
llm={"provider": "openrouter"},
squilla_router={
"enabled": True,
"tier_profile": None,
"tiers": tiers,
}
)
res = upsert_router(cfg, mode="openrouter-mix", tiers=tiers)
assert res.public_payload["mode"] == "custom"
assert res.config.squilla_router.tier_profile is None
assert res.config.squilla_router.tiers["c1"]["description"] == "Operator edited description."