mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-14 09:03:16 +00:00
test(router): cover region filtering across async sync and passthrough selectors
This commit is contained in:
parent
87dbe0f4ce
commit
709e27feb2
1 changed files with 43 additions and 5 deletions
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue