litellm/tests/router_unit_tests
Aloys Jehwin b313fc0b63 fix: simple_shuffle ignores weights when first healthy deployment has none (fixes #33329)
The weighted-routing guard checked only healthy_deployments[0] for each
metric (weight/rpm/tpm). If the first deployment lacked the field, the
entire metric was skipped even when later deployments had it, causing
silent fallback to uniform random.choice.

Fix: replace the single-element probe with any(...) over all healthy
deployments so the metric is activated whenever at least one deployment
carries it. The existing zero-total-weight guard already handles the case
where the first-element value is 0 (numeric falsy) correctly.

Add four unit tests covering:
- weight present only on second deployment (was broken)
- same after reversing the list (was broken in opposite order)
- no weights -> falls through to uniform pick
- all weights present -> weighted pick (regression)

Signed-off-by: Aloys Jehwin <aloys.jehwin@sap.com>
2026-07-15 16:47:24 +05:30
..
conftest.py fix(tests): stabilize image-edit VCR cassettes to stop live gpt-image-1 spend (#28110) 2026-05-18 09:15:39 -07:00
create_mock_standard_logging_payload.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
gettysburg.wav test(router_code_coverage.py): check if all router functions are dire… (#6186) 2024-10-14 22:44:00 -07:00
README.md test(router_code_coverage.py): check if all router functions are dire… (#6186) 2024-10-14 22:44:00 -07:00
test_completion_no_copy.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_default_deployment_copy.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_get_model_list_alias_optimization.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_pre_call_checks_optimization.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_prompt_management_check.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_router_acancel_batch.py Title: Fix managed batch cancel credential resolution (#29734) 2026-06-06 12:35:18 -07:00
test_router_adding_deployments.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_router_aresponses_streaming_fallback.py fix(responses-api): raise APIError on in-stream error events; widen ErrorEventError.param to accept dict (#32835) 2026-07-10 20:25:38 -07:00
test_router_batch_utils.py fix(vertex/files): stream OpenAI->Vertex batch JSONL uploads (#31036) 2026-06-24 13:19:57 -07:00
test_router_cooldown_utils.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_router_embedding_headers.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_router_embedding_integration.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_router_endpoints.py chore(oss): litellm oss staging 120626 (#30292) 2026-06-12 09:49:25 -07:00
test_router_handle_error.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_router_helper_utils.py feat(router): add separate ITPM/OTPM deployment rate limits (#31952) 2026-07-05 21:58:35 +05:30
test_router_index_management.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_router_prompt_caching.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_simple_shuffle.py fix: simple_shuffle ignores weights when first healthy deployment has none (fixes #33329) 2026-07-15 16:47:24 +05:30

Router component unit tests.

Please name all files with the word 'router' in them.

This is used to ensure all functions in the router are tested.