import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from core import ai_client # noqa: E402
def test_resolve_model_config_upgrades_deprecated_balanced_slug(monkeypatch):
monkeypatch.setitem(ai_client.MODELS_CONFIG, "balanced", {
"model": "z-ai/glm-4.7",
"temperature": 0.2,
"top_p": 0.9,
"max_tokens": 32768,
"api_key": "test-key",
})
resolved = ai_client.resolve_model_config("balanced")
assert resolved["model"] == "z-ai/glm-5.1"
assert ai_client.MODELS_CONFIG["balanced"]["model"] == "z-ai/glm-4.7"
def test_resolve_model_config_keeps_qwen_122b_default():
resolved = ai_client.resolve_model_config("default")
assert resolved["model"] == "qwen/qwen3.5-122b-a10b"
def test_get_ai_response_falls_back_when_requested_model_is_degraded(monkeypatch):
calls = []
monkeypatch.setattr(ai_client, "make_openai_client", lambda _config: object())
monkeypatch.setattr(ai_client.cache, "get", lambda _key: None)
monkeypatch.setattr(ai_client.cache, "set", lambda _key, _value: None)
def fake_request(_client, _system_prompt, _input_text, model_config, cancel_event=None):
calls.append(model_config["model"])
if model_config["model"] == "qwen/qwen3.5-122b-a10b":
raise RuntimeError("DEGRADED function cannot be invoked")
return "