litellm/tests
Alexsander Hamir eb5031da1e
[Perf] Fix bottlenecks degrading realtime endpoint performance (#16670)
* Cache realtime websocket request body

Move the realtime request payload builder out of the websocket handler and wrap it with an LRU cache so repeated connections reuse the same bytes object. This keeps the JSON formatting cost down while bounding memory usage.

* Optimize realtime websocket caching

Refactored /v1/realtime to use cached helpers for both the JSON body and query params, introduced a reusable request-scope template, and optimized header handling to avoid redundant work.

* Refine realtime websocket header handling

* Reuse websocket scope headers in auth

* Refactor realtime request body helper

Move the realtime request body formatter into proxy common utils so it can be reused across modules. Reuse it in the websocket auth flow to share LRU caching and avoid ad hoc byte builders.

* fix: revert to old pattern

The old pattern was necessary, we can just return the optimized function instead.

* Reuse SSL context for realtime

Create a shared SSLContext for OpenAI realtime websocket dials and pass it into websockets.connect so we stop re-reading verify paths on every session.

* feat: reuse shared TLS context for realtime websockets

- add `SHARED_REALTIME_SSL_CONTEXT` helper so all realtime websocket clients share the same TLS settings
- wire the shared context into OpenAI, Azure, custom HTTPX handlers, and realtime health checks
- update realtime tests to assert that the expected SSL context is passed to `websockets.connect`

This keeps TLS configuration consistent and avoids recreating SSL contexts per connection.

* Reuse HTTP SSL context for realtime

Remove the standalone realtime SSL helper, expose a shared context directly from the HTTP handler, and point all realtime websocket clients and tests to it. Add the websocket header comparison tool.

* Lazy-load shared realtime SSL context

Fix circular imports introduced by eagerly instantiating the shared TLS context. Make the HTTP handler lazily create the context and have realtime clients/tests fetch it on demand, keeping configuration consistent without breaking startup.

* add: unit test for realtime LRU caches

* fix: merge conflict with imports
2025-11-22 10:01:02 -08:00
..
audio_tests add runwayml/eleven_multilingual_v2 pricing 2025-11-13 16:45:35 -08:00
basic_proxy_startup_tests test_health_and_chat_completion 2025-10-31 19:28:59 -07:00
batches_tests [Feat] Bedrock Batches - Add support for custom KMS encryption keys in Bedrock Batch operations (#16662) 2025-11-14 16:00:43 -08:00
code_coverage_tests fix img URL for tests 2025-11-22 09:41:15 -08:00
documentation_tests Litellm docs readme fixes (#16107) 2025-10-30 17:05:32 -07:00
enterprise Add managed files support for responses API (#16733) 2025-11-17 18:41:26 -08:00
guardrails_tests Add Zscaler AI Guard hook (#15691) 2025-11-11 15:34:27 -08:00
image_gen_tests fix img gen 2025-11-21 17:18:48 -08:00
litellm/llms Fix image_config.aspect_ratio not working for gemini-2.5-flash-image (#15999) 2025-11-03 08:48:36 -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
llm_responses_api_testing Litellm sameer nov 3 stable branch (#16963) 2025-11-22 09:35:05 -08:00
llm_translation fix img URL for tests 2025-11-22 09:41:15 -08:00
load_tests
local_testing fix img URL for tests 2025-11-22 09:41:15 -08:00
logging_callback_tests test logging tests + mcp server QA checks 2025-11-15 08:58:46 -08:00
mcp_tests [Feat] mcp resources support (#16800) 2025-11-20 14:53:44 -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 Litellm sameer nov 3 stable branch (#16963) 2025-11-22 09:35:05 -08:00
otel_tests test_team_budget_metrics 2025-11-01 09:21:17 -07: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 fix test claude-sonnet-4-5-20250929 2025-10-31 18:13:29 -07:00
proxy_admin_ui_tests [Infra] CI/CD Fixes (#16937) 2025-11-21 13:58:19 -08:00
proxy_security_tests
proxy_unit_tests [Perf] Fix bottlenecks degrading realtime endpoint performance (#16670) 2025-11-22 10:01:02 -08:00
router_unit_tests [Fix] - Router's Cache: Fix routing for requests with same cacheable prefix but different user messages (#16951) 2025-11-21 19:13: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 Feat/persist mcp credentials in db (#16308) 2025-11-07 19:22:49 -08:00
test_litellm [Perf] Fix bottlenecks degrading realtime endpoint performance (#16670) 2025-11-22 10:01:02 -08:00
unified_google_tests
vector_store_tests (feat) Milvus - search vector store support + (fix) Passthrough Endpoints - support multi-part form data on passthrough (#16035) 2025-11-01 12:00:29 -07: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.