| import pytest | |
| def test_map_model_name_downgrades_opus(): | |
| from kiro_proxy.config import map_model_name | |
| assert map_model_name("claude-opus-4.5") == "claude-sonnet-4.5" | |
| assert map_model_name("claude-3-opus-20240229") == "claude-sonnet-4.5" | |
| assert map_model_name("claude-3-opus-latest") == "claude-sonnet-4.5" | |
| assert map_model_name("claude-4-opus") == "claude-sonnet-4.5" | |
| assert map_model_name("o1") == "claude-sonnet-4.5" | |
| assert map_model_name("o1-preview") == "claude-sonnet-4.5" | |
| assert map_model_name("opus") == "claude-sonnet-4.5" | |
| async def test_models_fallback_does_not_advertise_opus(monkeypatch): | |
| from kiro_proxy.routers import protocols | |
| monkeypatch.setattr(protocols.state, "get_available_account", lambda *args, **kwargs: None) | |
| resp = await protocols.models() | |
| model_ids = {m["id"] for m in resp.get("data", [])} | |
| assert "claude-opus-4.5" not in model_ids | |