litellm/tests/proxy_behavior/management
Yassin Kortam 1d695a714b
fix(proxy): reset a stuck team member's budget (#37971)
* fix(proxy): reset a stuck team member's budget

A per-team-member budget check reads a cross-pod spend counter that
nothing ever invalidates. Once a member exceeds their per-member
budget, resetting the key's spend, raising the user's or the team's
own budget, or issuing a new key all leave the member stuck, because
none of them touch this counter or its cached membership object.

Add POST /team/{team_id}/member/{user_id}/reset_spend to reset a
member's tracked spend, and invalidate the same cached state from
/team/member_update when it raises a member's own budget, so that
path also takes effect immediately instead of waiting on the
membership cache's TTL. Name the entity in the check's error message
so a stuck member is diagnosable from the 429 body alone.

* fix(proxy): close reset-vs-floor-read race and surface double Redis write failure on member spend reset

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

* fix(proxy): broadcast spend reset as a SET so the handler's self-delivered message cannot erase the reset guard

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

* fix(proxy): omit null fields from the invalidation message so plain evictions keep the old wire format

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

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-25 09:50:09 -07:00
..
__init__.py feat(tests): behavior-pinning harness + Key Tier-1 matrix (#28321) 2026-05-20 19:27:44 -07:00
actors.py test(proxy): behavior-pinning matrix for team management endpoints (#28441) 2026-05-21 16:57:25 -07:00
conftest.py test(proxy): separate the member_add permission gate from the provisioning gate 2026-08-01 14:39:47 -07:00
test_credential_migration_endpoint.py feat(proxy): add AES-256-GCM at-rest credential encryption with versioned format and re-encryption migration (#31215) 2026-06-29 20:14:22 +02:00
test_f7_coverage_closeout.py test(proxy): phase-4 payload behavior pinning for tier-2/3 key + team management endpoints (#28681) 2026-05-23 12:16:29 -07:00
test_f7_key_coverage_push.py test(proxy): phase-4 payload behavior pinning for tier-2/3 key + team management endpoints (#28681) 2026-05-23 12:16:29 -07:00
test_key_aliases.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_block_unblock.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_budget_limits.py test(proxy): phase-4 payload behavior pinning for tier-2/3 key + team management endpoints (#28681) 2026-05-23 12:16:29 -07:00
test_key_bulk_update.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_delete.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_generate.py feat(tests): behavior-pinning harness + Key Tier-1 matrix (#28321) 2026-05-20 19:27:44 -07:00
test_key_health.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_info.py feat(tests): behavior-pinning harness + Key Tier-1 matrix (#28321) 2026-05-20 19:27:44 -07:00
test_key_info_v2.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_list.py chore: litellm oss staging (#30745) 2026-06-18 13:55:35 -07:00
test_key_regenerate.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_reset_spend.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_service_account_generate.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_team_change.py test(proxy): phase-4 payload behavior pinning for tier-2/3 key + team management endpoints (#28681) 2026-05-23 12:16:29 -07:00
test_key_update.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_no_management_imports.py feat(tests): behavior-pinning harness + Key Tier-1 matrix (#28321) 2026-05-20 19:27:44 -07:00
test_route_coverage.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_scratch_teardown.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_smoke.py feat(tests): behavior-pinning harness + Key Tier-1 matrix (#28321) 2026-05-20 19:27:44 -07:00
test_team_available.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_block_unblock.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_budget_limits.py feat(teams): apply default organization to new teams from default team settings (#35540) 2026-08-03 12:57:12 -07:00
test_team_bulk_member_add.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_daily_activity.py feat(proxy): add /team/daily/activity/aggregated and switch the Usage team tab to it (#36562) 2026-08-18 11:29:57 -07:00
test_team_delete.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_filter_ui.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_info.py test(proxy): phase-4 payload behavior pinning for tier-2/3 key + team management endpoints (#28681) 2026-05-23 12:16:29 -07:00
test_team_key_bulk_update.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_list.py test(proxy): behavior-pinning matrix for team management endpoints (#28441) 2026-05-21 16:57:25 -07:00
test_team_list_v2.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_member_add.py test(proxy): separate the member_add permission gate from the provisioning gate 2026-08-01 14:39:47 -07:00
test_team_member_delete.py test(proxy): behavior-pinning matrix for team management endpoints (#28441) 2026-05-21 16:57:25 -07:00
test_team_member_info_validation.py test(proxy): separate the member_add permission gate from the provisioning gate 2026-08-01 14:39:47 -07:00
test_team_member_me.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_member_reset_spend.py fix(proxy): reset a stuck team member's budget (#37971) 2026-08-25 09:50:09 -07:00
test_team_member_update.py test(proxy): behavior-pinning matrix for team management endpoints (#28441) 2026-05-21 16:57:25 -07:00
test_team_metadata_schema.py test: repair three failing suites on litellm_internal_staging 2026-08-04 16:07:02 -07:00
test_team_model.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_new.py feat(teams): apply default organization to new teams from default team settings (#35540) 2026-08-03 12:57:12 -07:00
test_team_permissions.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_permissions_bulk_update.py test(proxy): phase-4 payload behavior pinning for tier-2/3 key + team management endpoints (#28681) 2026-05-23 12:16:29 -07:00
test_team_update.py fix(proxy): resolve team org from team_id so org admins can update team budgets 2026-07-08 19:10:35 -07:00
test_world_seed.py feat(tests): behavior-pinning harness + Key Tier-1 matrix (#28321) 2026-05-20 19:27:44 -07:00