test(router): cover provider over-budget filtering path

This commit is contained in:
Devin AI 2026-07-16 15:54:57 +00:00
parent 8a87909a3f
commit 1ce6d571d7

View file

@ -182,6 +182,45 @@ async def test_async_filter_deployments_keeps_provider_without_max_budget(
assert filtered_deployments == healthy_deployments
@pytest.mark.asyncio
async def test_async_filter_deployments_filters_provider_over_max_budget(
disable_budget_sync, monkeypatch
):
provider_budget = RouterBudgetLimiting(
dual_cache=DualCache(),
provider_budget_config={
"openai": BudgetConfig(budget_duration="1d", max_budget=100.0),
},
)
await provider_budget.dual_cache.async_set_cache(
key="provider_spend:openai:1d", value=150.0
)
healthy_deployments = [
{
"model_name": "gpt-4o-mini",
"litellm_params": {"model": "openai/gpt-4o-mini"},
"model_info": {"id": "deployment-1"},
},
]
monkeypatch.setattr(
provider_budget,
"_get_llm_provider_for_deployment",
lambda deployment: "openai",
)
with pytest.raises(ValueError, match="Exceeded budget for provider openai"):
await provider_budget.async_filter_deployments(
model="gpt-4o-mini",
healthy_deployments=healthy_deployments,
messages=[],
request_kwargs={},
parent_otel_span=None,
)
@pytest.mark.asyncio
async def test_async_filter_deployments_does_not_recompute_provider_when_resolved_none(
disable_budget_sync, monkeypatch