litellm/tests
Krish Dholakia c42740a4b9
Simplify experimental multi-instance rate limiter - more accurate (#11424)
* refactor: comment out circuit breaker

causes incorrect rate limiting in high traffic

* fix(base_routing_strategy.py): don't reset value if redis val is lower than current in-memory value

Fixes issue where redis might be trailing in-memory value

* fix(parallel_request_limiter_v2.py): if in-memory higher than redis, don't reset value; add previous slot keys to redis increment to correctly 'get' them

* fix(parallel_request_limiter_v3.py): v3 implementation of parallel request limiter

does not use background redis syncing - increments redis in call

 simplify rate limiting logic, to improve accuracy

* fix: fix ruff errors

* fix(parallel_request_limiter_v3.py): don't decrement limit on post call success - causes double decrements

* fix(parallel_request_limiter_v3.py): working accurate multi-instance logic

ensured just 100 requests allowed on 100 users, 10 ramp up, 100 rpm limit key, 2 instances

* fix(parallel_request_limiter_v3.py): working accurate rate limiting with time window resets

allows rate limiting to work across multiple windows

* test: add unit tests for v3 rate limiter

* fix(parallel_request_limiter_v3.py): return window value into in-memory cache

allows in-memory cache checks to be used correctly

* refactor(parallel_request_limiter_v3.py): refactor rate limiting to work for multiple window/counter key pairs

enables using for user/team/model rate limiting

* feat(parallel_request_limiter_v3.py): working rate limiting, across key/user/team/end-user

* fix(parallel_request_limiter_v3.py): add model specific rate limiting

* fix(parallel_request_limiter_v3.py): ignore if no rate limits set

skip unecessary rate limit checks - if no limits set

* fix(parallel_request_limiter_v3.py): initial commit bringing token rate limits back

* fix(parallel_request_limiter_v3.py): increment by value in list + update assertions to handle tokens + max parallel requests

* test(parallel_request_limiter_v3.py): more testing

* fix(parallel_request_limiter.py): working in-memory cache limiter

* fix(redis_cache.py): ignore linting error - use safe hasattr

* fix(parallel_request_limiter_v3.py): fix linting error

* refactor: remove redundant parallel_Request_limiter_v2.py

old / inaccurate implementation

* test: update tests

* style: cleanup

* test: update test

* docs(config_settings.md): document new env var

* test(test_base_routing_strategy.py): update test
2025-06-07 11:10:55 -07:00
..
basic_proxy_startup_tests
batches_tests Litellm managed file updates combined (#11040) 2025-05-22 17:20:41 -07:00
code_coverage_tests Xai, VertexAI, Google AI Studio - live web search support in OpenAI format (#11251) 2025-05-31 14:26:16 -07:00
documentation_tests
enterprise Support returning virtual key in custom auth + Handle provider-specific optional params for embedding calls (#11346) 2025-06-03 07:24:13 -07:00
guardrails_tests Add presidio_language yaml configuration support for guardrails (#11331) 2025-06-02 13:13:17 -07:00
image_gen_tests [Fix]: Add cost tracking for image edits endpoint [OpenAI, Azure] (#11186) 2025-05-27 17:52:15 -07:00
litellm_utils_tests fix(utils.py): handle litellm proxy case for checking model info 2025-06-06 09:24:41 -07:00
litellm-proxy-extras
llm_responses_api_testing [Feat] Use aiohttp transport by default - 97% lower median latency (#11097) 2025-05-23 22:55:35 -07:00
llm_translation test: update test 2025-06-06 09:15:08 -07:00
load_tests test: test_embedding_performance 2025-05-14 21:31:07 -07:00
local_testing Simplify experimental multi-instance rate limiter - more accurate (#11424) 2025-06-07 11:10:55 -07:00
logging_callback_tests fix(prometheus.py): update tests 2025-06-06 09:12:54 -07:00
mcp_tests feat: Allow Adding MCP Servers Through LiteLLM UI (#11208) 2025-05-28 16:29:27 -07:00
multi_instance_e2e_tests
old_proxy_tests/tests
openai_endpoints_tests
otel_tests [Feat] Prometheus - Track route on proxy_* metrics (#10992) 2025-05-20 22:55:55 -07:00
pass_through_tests
pass_through_unit_tests [Feat] Allow using litellm.completion with /v1/messages API Spec (use gpt-4, gemini etc with claude code) (#11502) 2025-06-06 20:35:53 -07:00
proxy_admin_ui_tests test(test_sso_sign_in.py): update test 2025-06-03 21:46:34 -07:00
proxy_security_tests
proxy_unit_tests [Feat] UI - show vector store permissions for Key, Team, Org (#11277) 2025-05-30 17:23:50 -07:00
router_unit_tests complete unified batch id support - replace model in jsonl to be deployment model name (#10719) 2025-05-10 12:04:01 -07:00
scim_tests
spend_tracking_tests
store_model_in_db_tests feat: Allow Adding MCP Servers Through LiteLLM UI (#11208) 2025-05-28 16:29:27 -07:00
test_litellm Simplify experimental multi-instance rate limiter - more accurate (#11424) 2025-06-07 11:10:55 -07:00
windows_tests [Bug Fix] UnicodeDecodeError: 'charmap' on Windows during litellm import (#10542) 2025-05-03 21:31:05 -07:00
__init__.py Litellm fix GitHub action testing (#11163) 2025-05-26 14:41:42 -07:00
gettysburg.wav
large_text.py
openai_batch_completions.jsonl
README.MD
test_callbacks_on_proxy.py
test_config.py
test_debug_warning.py
test_end_users.py
test_entrypoint.py
test_fallbacks.py Ollama Chat - parse tool calls on streaming (#11171) 2025-05-27 16:14:49 -07:00
test_health.py
test_keys.py test: temporarily skip test due to change testing model change - need to update test for new model 2025-05-09 09:02:08 -07:00
test_logging.conf
test_models.py Ollama Chat - parse tool calls on streaming (#11171) 2025-05-27 16:14:49 -07:00
test_openai_endpoints.py
test_organizations.py UI - fix adding vertex models with reusable credentials + fix pagination on keys table + fix showing org budgets on table (#10528) 2025-05-03 08:16:53 -07:00
test_passthrough_endpoints.py
test_ratelimit.py
test_spend_logs.py
test_team_logging.py
test_team_members.py
test_team.py build: publish new litellm-proxy-extras file 2025-05-27 17:44:23 -07:00
test_users.py test: fix imports 2025-05-26 22:06:53 -07:00

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/litellm

This folder can only run mock tests.