litellm/tests/e2e/llm_translation
ryan-crabbe-berri e967bc8c4f
test(e2e): cover 12 non-core LLM coverage registry cells (#34123)
* fix(e2e): reference client.proxy in mid-conversation native providers test

EndpointsClient exposes the shared ProxyClient as .proxy and has never had a
.gateway attribute, so these two calls raised AttributeError at runtime and
failed the tests/e2e basedpyright zero-error gate for any PR touching e2e
files. Introduced in 23b5b7d199.

* test(e2e): cover 12 non-core LLM coverage registry cells

Raises Non-Core LLMs registry coverage from 24/50 to 36/50 (overall 51.9%
to 54.8%). Four cells were already asserted by existing tests and only
gain their covers marker (openai embeddings, openai image generation,
openai TTS, cohere rerank); one is dual-marked onto the existing
spend-tracking embeddings test rather than duplicated.

New tests: bedrock and vertex embeddings, streaming TTS (asserts chunked
transfer encoding so a buffered body cannot pass), audio transcriptions
via the realtime suite's wav fixture, moderations flag/pass pair, and
files list/retrieve in the batches suite.

Harness: e2e_http.upload generalized to any form model with a
file_content_type override (batches path unchanged), new stream_binary
primitive + BinaryStream for binary chunked responses, transcribe and
moderations client methods, file retrieve/list client methods.

* fix(e2e): close streamed TTS response on error paths and surface the error body

With stream=True a non-2xx response returned with the body unread, keeping
the socket checked out until garbage collection; the sibling
_streaming_outcome already consumes resp.text on error. The response now
closes on every path and BinaryStream carries a bounded error_body so a
failed stream call is triageable.

* test(e2e): assert streamed TTS response carries no content-length
2026-07-22 00:43:41 +00:00
..
realtime test(true_rabbit): cover passthrough headers, batch assume-role, gemini, vllm, bedrock guardrails, batch rate-limit mapping (#33843) 2026-07-20 16:15:55 -07:00
conftest.py test(e2e): rename Gateway to ProxyClient and expose it as a session-scoped fixture (#33750) 2026-07-18 18:41:18 +00:00
endpoints_client.py test(e2e): cover 12 non-core LLM coverage registry cells (#34123) 2026-07-22 00:43:41 +00:00
LLM_TRANSLATION_COVERAGE_MATRIX.md test(e2e): add vertex_ai passthrough spend-log coverage (#31781) 2026-07-02 17:32:46 -07:00
passthrough_client.py test(e2e): rename Gateway to ProxyClient and expose it as a session-scoped fixture (#33750) 2026-07-18 18:41:18 +00:00
test_audio_speech_e2e.py test(e2e): cover 12 non-core LLM coverage registry cells (#34123) 2026-07-22 00:43:41 +00:00
test_audio_transcriptions_e2e.py test(e2e): cover 12 non-core LLM coverage registry cells (#34123) 2026-07-22 00:43:41 +00:00
test_cache_control.py test(e2e): rename Gateway to ProxyClient and expose it as a session-scoped fixture (#33750) 2026-07-18 18:41:18 +00:00
test_chat_completions_regression_e2e.py test(true_rabbit): cover passthrough headers, batch assume-role, gemini, vllm, bedrock guardrails, batch rate-limit mapping (#33843) 2026-07-20 16:15:55 -07:00
test_credential_messages_e2e.py test(e2e): cover credential-backed /v1/messages request (#33863) 2026-07-18 18:30:55 -07:00
test_custom_pricing_e2e.py test(e2e): rename Gateway to ProxyClient and expose it as a session-scoped fixture (#33750) 2026-07-18 18:41:18 +00:00
test_deepseek_reasoning_e2e.py test(e2e): rename Gateway to ProxyClient and expose it as a session-scoped fixture (#33750) 2026-07-18 18:41:18 +00:00
test_embeddings_endpoint_e2e.py test(e2e): cover 12 non-core LLM coverage registry cells (#34123) 2026-07-22 00:43:41 +00:00
test_image_generation_e2e.py test(e2e): cover 12 non-core LLM coverage registry cells (#34123) 2026-07-22 00:43:41 +00:00
test_messages_azure_foundry_e2e.py test(e2e): add Azure AI Foundry and Anthropic /v1/messages coverage for the Rust bridge (#34021) 2026-07-21 16:22:47 -07:00
test_messages_e2e.py test(e2e): add Azure AI Foundry and Anthropic /v1/messages coverage for the Rust bridge (#34021) 2026-07-21 16:22:47 -07:00
test_messages_mid_conversation_system_e2e.py test(e2e): rename Gateway to ProxyClient and expose it as a session-scoped fixture (#33750) 2026-07-18 18:41:18 +00:00
test_messages_mid_conversation_system_native_providers_e2e.py chore(tests): replace a customer name and domain with neutral placeholders 2026-07-21 15:09:15 -07:00
test_moderations_e2e.py test(e2e): cover 12 non-core LLM coverage registry cells (#34123) 2026-07-22 00:43:41 +00:00
test_ocr_rust_e2e.py test(e2e): rename Gateway to ProxyClient and expose it as a session-scoped fixture (#33750) 2026-07-18 18:41:18 +00:00
test_passthrough_e2e.py test(e2e): rename Gateway to ProxyClient and expose it as a session-scoped fixture (#33750) 2026-07-18 18:41:18 +00:00
test_passthrough_headers_e2e.py fix(e2e): drop httpbin.org from passthrough headers test, use real Anthropic (#34159) 2026-07-21 17:42:20 -07:00
test_provider_features_e2e.py test(e2e): rename Gateway to ProxyClient and expose it as a session-scoped fixture (#33750) 2026-07-18 18:41:18 +00:00
test_rerank_e2e.py test(e2e): cover 12 non-core LLM coverage registry cells (#34123) 2026-07-22 00:43:41 +00:00
test_responses_e2e.py test(e2e): cover /v1/responses OpenAI vision and Anthropic basic (#33838) 2026-07-18 14:00:43 -07:00
test_responses_metadata_e2e.py test(true_rabbit): cover passthrough headers, batch assume-role, gemini, vllm, bedrock guardrails, batch rate-limit mapping (#33843) 2026-07-20 16:15:55 -07:00
test_vertex_passthrough_e2e.py test(e2e): rename Gateway to ProxyClient and expose it as a session-scoped fixture (#33750) 2026-07-18 18:41:18 +00:00