litellm/tests
mateo-berri 9799a1f16a feat(elevenlabs): stream text-to-speech over a WebSocket pass-through and bill it per character
Adds /elevenlabs/v1/text-to-speech/{voice_id}/stream-input and /multi-stream-input. The proxy authenticates the caller with a LiteLLM key, relays the session to ElevenLabs with the proxy's own xi-api-key, and writes one spend row per session at characters times the cost-map input_cost_per_character of elevenlabs/<model_id>. A missing model_id gets eleven_multilingual_v2, an unpriced model or a bad voice_id is refused with 1008 before ElevenLabs is contacted, and caller credentials are stripped from the query string and from every frame

The shared relay takes a frame policy. ElevenLabs parses each client frame once, forwards the re-serialized frame and records its text from that same parse, and closes with 1007 on a frame it cannot read, so the forwarded text and the billed text never disagree

The shared relay also changes for every WebSocket pass-through. A client that drops while upstream frames are still streaming now ends the session normally, so the success handler logs the spend for what was used instead of dropping the whole session on the failure path
2026-10-20 20:59:21 -07:00
..
_support fix(proxy)!: end a chat completions stream with an error event when a guardrail blocks mid-stream (#46953) 2026-10-17 18:00:12 -07:00
base_sdk_tests fix(sdk): decide MCP gateway routing without importing the proxy handler (#45961) 2026-10-20 01:44:54 +00:00
benchmarks feat(extraction): add /v1/extraction with Cloudflare Clairic support (#47473) 2026-10-20 15:51:45 -07:00
code_coverage_tests fix(scim)!: delete a group through the team delete's bulk path instead of one member at a time (#47544) 2026-10-21 00:59:23 +00:00
documentation_tests fix(proxy): let configured pass-through endpoints outrank built-in provider prefix routes (#44133) 2026-10-10 12:26:17 -07:00
e2e fix(ui): show the budget spend limit and rate limits without a collapsed section (#47662) 2026-10-20 17:58:05 -07:00
e2e_harness test(perf): emit the database upgrade run's perf rows and upgrade timings as JUnit properties (#47696) 2026-10-21 00:47:04 +00:00
fixtures test: migrate tests/llm_translation into unit, integration and e2e tiers (#45759) 2026-10-11 07:58:53 +00:00
harness_e2e fix(harness): set PWD to the working directory of local sandbox commands (#47530) 2026-10-20 20:06:11 +00:00
integration feat(elevenlabs): stream text-to-speech over a WebSocket pass-through and bill it per character 2026-10-20 20:59:21 -07:00
rust-python-harness feat(rust): encode LiteLLM response ids on native responses (#46572) 2026-10-18 20:52:34 -07:00
test_litellm_rust fix(logging)!: fire one CustomLogger failure hook per async call outside the async flag list (#47124) 2026-10-20 15:19:14 -07:00
typing fix: support OpenAI SDK 3 while retaining SDK 2 compatibility (#44927) 2026-10-09 19:45:50 -07:00
unit feat(elevenlabs): stream text-to-speech over a WebSocket pass-through and bill it per character 2026-10-20 20:59:21 -07:00
windows_tests test: move packaging and install checks off CircleCI build_and_test (#45757) 2026-10-10 09:33:51 -07:00
__init__.py refactor: expose core private helpers under public names (#44871) 2026-10-07 00:05:27 +00:00
_fake_openai_endpoint_server.py
_flush_vcr_cache.py
_live_test_helpers.py
_master_key.py fix(security): remove the publicly known master key from the repo (#44718) 2026-10-06 10:55:24 -07:00
_openai_record_replay_proxy.py
_process_helpers.py test: count a zombie grandchild as gone in the migrate deploy timeout test (#42570) 2026-09-22 14:59:26 -07:00
_vcr_conftest_common.py test: migrate tests/llm_translation into unit, integration and e2e tiers (#45759) 2026-10-11 07:58:53 +00:00
_vcr_redis_persister.py
_wait_helpers.py
_ws_vcr.py
AGENTS.md docs(agents): ban semicolons and colons in human-facing text (#45684) 2026-10-09 16:36:32 -07:00
capturing_transport.py test(vcr): guard leaked cassette patches and make injected-transport embedding tests immune (#42542) 2026-09-22 14:20:18 -07:00
eval_swe_bench.py
fake_openai_endpoint.py
gettysburg.wav
large_text.py
openai_batch_completions.jsonl
pyrightconfig.json
README.MD test: finish the non-proxy half of tests/test_litellm (#43281) 2026-09-25 22:43:41 -07:00
test_logging.conf
test_rust_python_harness.py test: move 76 live top-level tests to offline unit and integration coverage (#45352) 2026-10-08 10:33:35 -07:00
VCR_TESTING.md test: migrate tests/llm_translation into unit, integration and e2e tiers (#45759) 2026-10-11 07:58:53 +00:00
white_100x100.png test: stop CI tests from downloading tokenizer files and images (#43257) 2026-09-25 19:27:48 -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/unit

This folder can only run mock tests.