From 709e27feb2347c4345ea97d60440c8532bf119bd Mon Sep 17 00:00:00 2001 From: Zhibo Zhang Date: Mon, 2 Nov 2026 20:01:16 +0800 Subject: [PATCH] test(router): cover region filtering across async sync and passthrough selectors --- .../test_router_region_no_input.py | 48 +++++++++++++++++-- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/tests/unit/test_router/test_router_region_no_input.py b/tests/unit/test_router/test_router_region_no_input.py index 2ae769cea81..30503e1e849 100644 --- a/tests/unit/test_router/test_router_region_no_input.py +++ b/tests/unit/test_router/test_router_region_no_input.py @@ -2,24 +2,36 @@ import pytest from litellm import Router -@pytest.mark.asyncio -async def test_allowed_model_region_filters_requests_without_messages_or_input() -> None: - router = Router( +def _router_with_region_deployments(*, pass_through: bool = False) -> Router: + return Router( model_list=[ { "model_name": "region-test", - "litellm_params": {"model": "openai/gpt-4o", "region_name": "eu"}, + "litellm_params": { + "model": "openai/gpt-4o", + "region_name": "eu", + "use_in_pass_through": pass_through, + }, "model_info": {"id": "eu-deployment"}, }, { "model_name": "region-test", - "litellm_params": {"model": "openai/gpt-4o-mini", "region_name": "us"}, + "litellm_params": { + "model": "openai/gpt-4o-mini", + "region_name": "us", + "use_in_pass_through": pass_through, + }, "model_info": {"id": "us-deployment"}, }, ], enable_pre_call_checks=True, ) + +@pytest.mark.asyncio +async def test_allowed_model_region_filters_async_selection_without_messages_or_input() -> None: + router = _router_with_region_deployments() + deployments = await router.select( model="region-test", request_kwargs={"allowed_model_region": "eu"}, @@ -29,3 +41,29 @@ async def test_allowed_model_region_filters_requests_without_messages_or_input() ) assert [deployment["model_info"]["id"] for deployment in deployments] == ["eu-deployment"] + + +def test_allowed_model_region_filters_sync_selection_without_messages_or_input() -> None: + router = _router_with_region_deployments() + + deployment = router.get_available_deployment( + model="region-test", + request_kwargs={"allowed_model_region": "eu"}, + messages=None, + input=None, + ) + + assert deployment["model_info"]["id"] == "eu-deployment" + + +def test_allowed_model_region_filters_passthrough_without_messages_or_input() -> None: + router = _router_with_region_deployments(pass_through=True) + + deployment = router.get_available_deployment_for_pass_through( + model="region-test", + request_kwargs={"allowed_model_region": "eu"}, + messages=None, + input=None, + ) + + assert deployment["model_info"]["id"] == "eu-deployment"