This commit is contained in:
Maximilian Rink 2026-10-28 11:43:37 +01:00 • committed by GitHub
commit 38be228571
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 41 additions and 0 deletions

View file

@ -7815,6 +7815,7 @@ class ProxyConfig:
verbose_proxy_logger.debug("_model_list: %s", _model_list)
llm_router = litellm.Router(
model_list=_model_list,
cache_responses=litellm.cache is not None,
router_general_settings=RouterGeneralSettings(
async_only_mode=True # only init async clients
),

View file

@ -3747,6 +3747,46 @@ async def test_ProxyConfig__update_llm_router_no_models_smoke(monkeypatch):
assert snapshot == {"raised": False, "called": True, "models": "empty"}
@pytest.mark.asyncio
@pytest.mark.parametrize("cache_value, expected", [(object(), True), (None, False)])
async def test_ProxyConfig__update_llm_router_preserves_cache_state(
monkeypatch: pytest.MonkeyPatch, cache_value: object, expected: bool
) -> None:
from litellm.proxy import proxy_server
captured: dict[str, object] = {}
router = MagicMock()
router.get_model_list.return_value = []
def fake_router(**kwargs: object) -> MagicMock:
captured.update(kwargs)
return router
monkeypatch.setattr(litellm, "Router", fake_router)
monkeypatch.setattr(litellm, "cache", cache_value, raising=False)
monkeypatch.setattr(proxy_server, "llm_router", None)
monkeypatch.setattr(proxy_server, "master_key", "sk-master")
monkeypatch.setattr(proxy_server, "prisma_client", None)
monkeypatch.setattr(proxy_server, "general_settings", {})
pc = ProxyConfig()
monkeypatch.setattr(proxy_server, "proxy_config", pc)
monkeypatch.setattr(pc, "get_config", AsyncMock(return_value={}))
def fake_decrypt_model_list(new_models: list[object]) -> list[dict[str, object]]:
return [{"model_name": "db-model", "litellm_params": {"model": "openai/test"}}]
monkeypatch.setattr(
pc,
"decrypt_model_list_from_db",
fake_decrypt_model_list,
)
monkeypatch.setattr(pc, "_add_router_settings_from_db_config", AsyncMock())
await pc._update_llm_router(new_models=[SimpleNamespace()], proxy_logging_obj=MagicMock())
assert captured["cache_responses"] is expected
# ---------------------------------------------------------------------------
# ProxyConfig._add_callback_from_db_to_in_memory_litellm_callbacks
# ---------------------------------------------------------------------------