litellm/tests
shrey kharbanda 64c6955c96 feat(passthrough): add Deepgram streaming text-to-speech WebSocket route
Deepgram streams Aura text-to-speech over a WebSocket at /v1/speak. The
proxy now relays it at /deepgram/v1/speak and /deepgram/speak with the same
key auth (Bearer or a Deepgram SDK's Token scheme), provider key injection
and server-configured DEEPGRAM_API_BASE as the listen route. A
caller-supplied api_base is never honored

The route names exactly one voice upstream, the first model in the query or
aura-asteria-en when none is given, and authorizes the key against that
same voice. A missing DEEPGRAM_API_KEY is closed with 1011 before the
socket is accepted

A session is billed at one cost-map row. An aura-2-<name>-<xx> voice uses
deepgram/aura-2, an aura-<name>-<xx> voice uses deepgram/aura, and any other
voice uses a row named after itself, deepgram/<voice>. When that row has no
input_cost_per_character the socket is closed with 1008 before Deepgram is
contacted, naming the row to add, so a new generation such as aura-3-x-en
is refused rather than billed at another generation's rate, and adding its
row is enough to enable it

Spend is the relay's client text count times that rate. Only the length of
each Speak message's text is counted, whether it arrives in a text or a
binary frame, so Flush, Clear, Close and malformed frames add nothing, and
the text never reaches the logging payload. The success handler gets one
speak branch next to the listen branch, which takes its dispatcher one
branch past the C901 limit, so the def carries a noqa with the reason

That branch passes the dispatcher's untyped request_body and kwargs, as
every branch does, so the listen channel_index check becomes a match
statement to keep the type-check gate's unknown-argument count flat

Refs LIT-10070
2026-10-27 09:01:15 -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
audio_tests feat(vertex-ai)!: support gemini 3.1 flash tts (#31915) 2026-10-21 04:18:42 +00: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 fix(responses)!: round-trip Anthropic compaction blocks as compaction items (#46754) 2026-10-21 08:50:19 +00:00
code_coverage_tests fix(router): stop concurrent deployment deletes from crashing deployment lookups (#47680) 2026-10-26 15:40:19 -07: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): keep Aria accessible in the dashboard header (#48454) 2026-10-26 14:55:08 -07:00
e2e_harness test(perf): ramp the load cases until the pod stops keeping up and floor sustained_rps (#47758) 2026-10-20 22:31:08 -07: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 fix(prometheus): count provider-side 401s in LLM failure and deployment metrics (#46668) 2026-10-26 17:57:06 -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(passthrough): add Deepgram streaming text-to-speech WebSocket route 2026-10-27 09:01:15 -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.