fix(ci): resolve post-merge test isolation leak and stale generated schema

- test_custom_pass_through_endpoint_prefix_wins_over_native_provider_routes
  registered routes directly on the shared litellm.proxy.proxy_server.app
  singleton with no teardown, leaking /claude-aws/v1/files and
  /claude-aws/v1/batches into app.router.routes for the rest of the test
  session. A newer upstream test, test_gateway_plus_backend_covers_full_app,
  then flags those as routes uncovered by either component's allowlist.
  Snapshot app.router.routes before the test and restore it in a finally
  block.
- Regenerate ui/litellm-dashboard/src/lib/http/schema.d.ts (npm run gen:api)
  against the post-merge backend; the prior merge left it stale by two
  lines (a soft_budget docstring entry removed upstream).
This commit is contained in:
IdoPort 2026-09-14 11:22:05 +03:00
parent 655989e081
commit 2aa7fc934a
2 changed files with 27 additions and 22 deletions

View file

@ -3413,6 +3413,11 @@ def test_custom_pass_through_endpoint_prefix_wins_over_native_provider_routes():
) )
from litellm.proxy.proxy_server import app from litellm.proxy.proxy_server import app
# app is the real, process-wide proxy app -- registering routes on it leaks
# into every other test (e.g. test_component_allowlists.py's full-route-coverage
# check) unless restored, so snapshot and restore app.router.routes afterward.
original_routes = list(app.router.routes)
try:
for suffix in ("files", "batches"): for suffix in ("files", "batches"):
InitPassThroughEndpointHelpers.add_exact_path_route( InitPassThroughEndpointHelpers.add_exact_path_route(
app=app, app=app,
@ -3435,6 +3440,8 @@ def test_custom_pass_through_endpoint_prefix_wins_over_native_provider_routes():
assert _resolve_route_name("GET", "/azure/v1/files") == "list_files" assert _resolve_route_name("GET", "/azure/v1/files") == "list_files"
assert _resolve_route_name("POST", "/v1/files") == "create_file" assert _resolve_route_name("POST", "/v1/files") == "create_file"
assert _resolve_route_name("POST", "/v1/batches") == "create_batch" assert _resolve_route_name("POST", "/v1/batches") == "create_batch"
finally:
app.router.routes = original_routes
def test_move_before_generic_provider_routes_is_a_no_op_without_a_generic_route(): def test_move_before_generic_provider_routes_is_a_no_op_without_a_generic_route():

View file

@ -16781,7 +16781,6 @@ export interface paths {
* - permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, eg. turning off pii masking. * - permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, eg. turning off pii masking.
* - metadata: Optional[dict] - Metadata for user, store information for user. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } * - metadata: Optional[dict] - Metadata for user, store information for user. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" }
* - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x. * - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x.
* - soft_budget: Optional[float] - Get alerts when user crosses given budget, doesn't block requests.
* - model_max_budget: Optional[dict] - Model-specific max budget for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys) * - model_max_budget: Optional[dict] - Model-specific max budget for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys)
* - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. * - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}.
* - model_rpm_limit: Optional[float] - Model-specific rpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) * - model_rpm_limit: Optional[float] - Model-specific rpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys)
@ -16887,7 +16886,6 @@ export interface paths {
* - permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, eg. turning off pii masking. * - permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, eg. turning off pii masking.
* - metadata: Optional[dict] - Metadata for user, store information for user. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } * - metadata: Optional[dict] - Metadata for user, store information for user. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" }
* - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x. * - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x.
* - soft_budget: Optional[float] - Get alerts when user crosses given budget, doesn't block requests.
* - model_max_budget: Optional[dict] - Model-specific max budget for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys) * - model_max_budget: Optional[dict] - Model-specific max budget for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys)
* - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. * - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}.
* - model_rpm_limit: Optional[float] - Model-specific rpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) * - model_rpm_limit: Optional[float] - Model-specific rpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys)