litellm/tests
rioiart 1ac2655b17
Fix/organization max budget not enforced (#17334)
* test: add failing tests for organization budget enforcement bug

Add comprehensive tests exposing that organization-level budgets are
retrieved but never enforced during request authentication. Tests verify:

1. Basic org budget exceeded scenario (team under budget, org over)
2. Multiple teams collectively exceeding org budget
3. Organization budget fields exist but are never checked
4. Inconsistency between team budget enforcement (works) and org (doesn't)

Tests intentionally fail to document the bug. Will be fixed in next commit.

Related to organization_max_budget not being enforced in auth_checks.py

* fix: enforce organization budget in auth checks

Add organization budget enforcement to common_checks() in auth_checks.py.
Previously, organization_max_budget was retrieved from DB but never checked,
allowing teams to collectively exceed their organization's budget limit.

Changes:
- Add _organization_max_budget_check() function following team budget pattern
- Call org budget check after team budget check in common_checks()
- Add "organization_budget" to budget_alerts type literals
- Update tests to verify org budget is enforced

Budget hierarchy is now properly enforced:
  Organization Budget (hard ceiling)
    └─ Team Budget (sub-allocation)
        └─ Team Member Budget (per-user within team)
            └─ Key Budget (per-key)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: add organization_id to budget alerts, fix enum comparison and linting of newly added code

- Add organization_id field to CallInfo class for better alert context
- Include organization_id in budget alerts (token, soft, team, org)
- Fix event_group enum comparison (was comparing enum to string)
- Add OrganizationBudgetAlert class for organization budget alerting
- Add organization_budget to test parameterizations
- Apply Black formatting to slack_alerting.py

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-02 22:46:03 -08:00
..
audio_tests [Feat] New model/provider - Adds support for Google Cloud Chirp3 HD on /speech (#17391) 2025-12-02 15:36:23 -08:00
basic_proxy_startup_tests test_health_and_chat_completion 2025-10-31 19:28:59 -07:00
batches_tests [Feat] Add vllm batch+files API support (#15823) 2025-12-02 08:41:50 -08:00
code_coverage_tests [Bug fix] Vector Store List Endpoint Returns 404 (#17229) 2025-11-27 12:51:51 -08:00
documentation_tests Litellm docs readme fixes (#16107) 2025-10-30 17:05:32 -07:00
enterprise feat: add experimental latest-user filtering for Bedrock (#17282) 2025-12-01 20:02:28 -08:00
guardrails_tests Add Zscaler AI Guard hook (#15691) 2025-11-11 15:34:27 -08:00
image_gen_tests fix 2025-11-26 17:11:33 -08:00
litellm/llms [Feat] New model/provider - Adds support for Google Cloud Chirp3 HD on /speech (#17391) 2025-12-02 15:36:23 -08:00
litellm_utils_tests [Feat] Adds IAM role assumption support for AWS Secret Manager (#16887) 2025-11-20 12:38:48 -08:00
litellm-proxy-extras Fix: Distinguish permission errors from idempotent errors in Prisma migrations (#17064) 2025-11-24 20:41:44 -08:00
llm_responses_api_testing test_process_chunk_with_response_completed_event 2025-11-26 11:52:05 -08:00
llm_translation Litellm bedrock OpenAI model support (#17368) 2025-12-02 09:19:53 -08:00
load_tests
local_testing Better handle anonymization (#17207) 2025-11-28 08:22:19 -08:00
logging_callback_tests Fix/organization max budget not enforced (#17334) 2025-12-02 22:46:03 -08:00
mcp_tests test fixes 2025-11-26 11:42:12 -08:00
multi_instance_e2e_tests
ocr_tests [Feat] Add Azure AI Doc Intelligence OCR (#16219) 2025-11-03 17:22:19 -08:00
old_proxy_tests/tests claude-sonnet-4-5-20250929 fix 2025-10-31 18:20:52 -07:00
openai_endpoints_tests test_e2e_batches_files 2025-11-27 09:14:43 -08:00
otel_tests Model Armor - Logging guardrail response on llm responses (#16977) 2025-11-22 15:44:28 -08:00
pass_through_tests fix: use vllm passthrough config for hosted vllm provider instead of raising error (#16537) 2025-11-12 09:12:14 -08:00
pass_through_unit_tests Add cost tracking for streaming in vertex ai 2025-11-20 15:08:38 +05:30
proxy_admin_ui_tests Adding timeout to flaky test 2025-11-27 17:53:09 -08:00
proxy_security_tests
proxy_unit_tests Fix 500 error for malformed request 2025-12-01 10:21:44 +05:30
router_unit_tests [Feat] New API - Claude Skills API (Anthropic) (#17042) 2025-11-24 15:01:40 -08:00
scim_tests
search_tests [Bug Fix]: Search APIs - error in firecrawl-search "Invalid request body" (#16943) 2025-11-21 14:56:19 -08:00
spend_tracking_tests fix ocr test 2025-10-31 20:32:03 -07:00
store_model_in_db_tests test_edit_mcp_server_redacts_credentials 2025-11-26 11:54:11 -08:00
test_litellm Fix/organization max budget not enforced (#17334) 2025-12-02 22:46:03 -08:00
unified_google_tests
vector_store_tests [Feat] LiteLLM RAG API - Add support for Vertex RAG engine (#17117) 2025-11-26 15:49:04 -08:00
windows_tests
__init__.py
gettysburg.wav
large_text.py
openai_batch_completions.jsonl
README.MD
test_budget_management.py
test_callbacks_on_proxy.py
test_config.py
test_debug_warning.py
test_end_users.py
test_entrypoint.py
test_fallbacks.py
test_gpt5_azure_temperature_support.py Fix: Azure GPT-5 incorrectly routed to O-series config (temperature parameter unsupported) (#16246) 2025-11-07 10:24:27 -08:00
test_health.py
test_keys.py
test_litellm_proxy_responses_config.py
test_logging.conf
test_models.py
test_openai_endpoints.py test fix claude-sonnet-4-5-20250929 2025-10-28 19:05:13 -07:00
test_organizations.py
test_passthrough_endpoints.py
test_ratelimit.py test_async_rate_limit 2025-11-15 10:34:24 -08:00
test_resource_cleanup.py
test_spend_logs.py
test_team_logging.py
test_team_members.py
test_team.py
test_users.py

In total litellm runs 1000+ tests

[02/20/2025] Update:

To make it easier to contribute and map what behavior is tested,

we've started mapping the litellm directory in tests/test_litellm

This folder can only run mock tests.