test(router): cover region filtering across async sync and passthrough selectors

This commit is contained in:
Zhibo Zhang 2026-11-02 20:01:16 +08:00
parent 87dbe0f4ce
commit 709e27feb2

View file

@ -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"