From 01f2e49096b1570efeb200aed8e20d4d72580caa Mon Sep 17 00:00:00 2001 From: Tom Ron Date: Tue, 29 Sep 2026 12:25:11 +0300 Subject: [PATCH] test(proxy): cover non-dict router_settings_override Co-Authored-By: Claude Sonnet 5.5 --- .../proxy/test_route_llm_request.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/test_litellm/proxy/test_route_llm_request.py b/tests/test_litellm/proxy/test_route_llm_request.py index 246dfe56825..6b68a4f2c1d 100644 --- a/tests/test_litellm/proxy/test_route_llm_request.py +++ b/tests/test_litellm/proxy/test_route_llm_request.py @@ -1350,3 +1350,24 @@ async def test_route_request_router_settings_override_stripped_with_api_key_or_b call_kwargs = llm_router.acompletion.call_args[1] assert "router_settings_override" not in call_kwargs assert call_kwargs["num_retries"] == 2 + + +@pytest.mark.asyncio +@pytest.mark.parametrize("bad_override", [None, "not-a-dict", ["num_retries"]]) +async def test_route_request_router_settings_override_non_dict_is_stripped_and_ignored(bad_override): + """A malformed override is dropped from the body and applies no settings.""" + data = { + "model": "gpt-3.5-turbo", + "messages": [{"role": "user", "content": "Hello"}], + "router_settings_override": bad_override, + } + + llm_router = MagicMock() + llm_router.acompletion.return_value = "success" + + response = await route_request(data, llm_router, None, "acompletion") + + assert response == "success" + call_kwargs = llm_router.acompletion.call_args[1] + assert "router_settings_override" not in call_kwargs + assert "num_retries" not in call_kwargs