litellm/tests/test_litellm/router_utils
devin-ai-integration[bot] 21c442759e
feat(router): time-windowed team reservation of deployments via model_info.access_windows (#42398)
* feat(router): time-windowed team reservation of deployments via model_info.access_windows

Deployments can declare model_info.access_windows, a list of local wall-clock windows (IANA timezone, cross-midnight allowed) that reserve the deployment for the listed team_ids. While a window is active the router drops the deployment for every other request, including no-team and admin requests, on every candidate path (model name, model id, specific_deployment, early-resolve, wildcard, litellm_params.model lookup, fallbacks). If every candidate is reserved the request fails with a 400 naming the window end instead of falling back. Outside a window routing is unchanged and reserved deployments stay visible in /model/info and /v1/models. Malformed windows (bad time, unknown timezone, empty team_ids, start equal to end, offset-aware times) fail proxy startup with a clear error since the proxy router runs with ignore_invalid_deployments=True

Resolves LIT-8308

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test(router): cover _filter_reserved_deployments directly for coverage gate

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* refactor(router): keep reservation filtering immutable

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(router): drop strategy markers before reservation filtering

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: yassin <yassin@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-22 13:22:15 -05:00
..
test_access_windows.py feat(router): time-windowed team reservation of deployments via model_info.access_windows (#42398) 2026-09-22 13:22:15 -05:00
test_add_retry_fallback_headers.py feat(proxy): expose complexity routing headers (#40792) 2026-09-11 17:14:40 -07:00
test_auto_router_model_naming.py chore(auto-router): merge main into JEV launch branch 2026-09-19 23:28:15 +00:00
test_auto_router_tuning_baseline.py feat(complexity_router): rebalance heuristic weights in the dashboard and grade custom dimensions by match count (#40205) 2026-09-08 13:28:57 -07:00
test_client_initalization_utils.py feat(router): reject with 429 when a deployment's max_parallel_requests slots are all in use 2026-09-17 18:14:09 +00:00
test_cooldown_cache.py fix(router): give cooldowns their own cache so siblings see a bench in ~1s (#40025) 2026-09-08 10:11:20 -07:00
test_cooldown_handlers.py test(router): annotate return types of team cooldown test helpers 2026-09-13 09:50:12 +00:00
test_fallback_event_handlers.py fix(router): keep refusal gates closed once every fallback entry was tried 2026-09-21 19:50:07 +00:00
test_get_retry_from_policy.py fix(router): add NotFoundErrorRetries so a retry policy can pin 404 retries 2026-09-19 16:25:47 -07:00
test_health_check_allowed_fails_integration.py fix(router): count allowed_fails in the shared router cache so multi-worker proxies bench a deployment fleet-wide (#40224) 2026-09-08 13:54:48 -07:00
test_health_state_cache.py fix(router): treat a breaker-refused Redis read as a miss in the health state cache 2026-09-10 18:16:59 -07:00
test_pattern_match_deployments.py fix(proxy): make the invalid-model 403 path cheap under a burst of rejections (#39892) 2026-09-05 11:53:04 -07:00
test_reasoning_effort_capability.py fix(mistral): never round reasoning_effort none onto the strength ladder 2026-09-18 12:22:34 -07:00
test_router_health_check_routing.py feat(health): opt-in model-group allowlist for background health checks and health-check routing (#38539) 2026-08-27 12:25:56 -07:00
test_router_interactions_endpoints.py Gemini managed agents support (#28270) 2026-05-19 16:02:03 -07:00
test_router_utils_common_utils.py fix(router): keep a model's own provider prefix for generic SDK calls 2026-09-04 23:32:26 -07:00