litellm/tests/e2e/llm_translation
yuneng-jiang 7aef79b774
test(e2e): harden the suite against response-cache cross-talk, slow providers and single upstream blips (#37957)
* test(e2e): send no-cache on every cacheable request body, opt in only where a hit is the assertion

The e2e proxy runs with the response cache on, so any test that re-sends an
identical chat, messages, responses, completions, embeddings or rerank body
reads back a redis copy of an earlier call instead of reaching the provider.
Five tests in the last week failed that way. Default cache: {"no-cache": true}
on those request models and pass cache=None only in the two tests whose
assertion is the cache hit itself.

* test(e2e): give image edits and OCR a 180s client timeout

Both routes wait on providers that can legitimately take longer than the
60s transport-wide request timeout (gpt-image edits, Azure Document
Intelligence), and a client-side read timeout there fails a green request.
post/upload now accept a per-call timeout like get already does; only those
two call sites use it.

* test(e2e): rerun once on network errors and upstream 5xx only

Assertion failures still fail on the first attempt; only an outcome whose
error string carries the e2e_http network kind or a 5xx status gets one
more try. Test Engine records every attempt, so the flake rate stays
visible while a single provider blip no longer reds the rc run.

* test(e2e): let the reseed burst survive one upstream failure and print why

The burst is the precondition, not the property: one 5xx among six
concurrent calls still leaves five workers racing the cold counter, which
is what the reseed assertion measures. Two or more failures still abort,
and the failing bodies are now in the message instead of only the status
codes.

* test(e2e): keep polling Jaeger through a transient query failure

poll_traces_for_call already waits up to POLL_TIMEOUT for spans to land,
but a single refused connection to the query API failed the test on the
spot. Jaeger restarted twice during today's gate runs (19:05 and 19:41
UTC, each under a minute) and took ten and three otel tests with it while
the same tests passed on the rc build minutes later. A network failure
now counts as not-yet inside the same deadline; if Jaeger is still
unreachable when the deadline passes the test fails with that error, and
any non-network failure still fails immediately.
2026-08-22 14:47:03 -07:00
..
realtime [e2e] Pin the OpenAI websocket passthrough prefixes 2026-08-21 17:26:18 -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): harden the suite against response-cache cross-talk, slow providers and single upstream blips (#37957) 2026-08-22 14:47:03 -07: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 [e2e] Pin the OpenAI websocket passthrough prefixes 2026-08-21 17:26:18 -07:00
test_audio_speech_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_audio_transcriptions_e2e.py test(e2e): accept both model-not-found phrasings on a shared proxy 2026-08-20 02:03:27 -07:00
test_bedrock_native_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_bedrock_web_search_server_tool_e2e.py test(e2e): skip the bedrock web search cell the stack cannot provision 2026-08-15 16:09:02 -07: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_contract_e2e.py test(e2e): record and replay the non-streaming provider flows 2026-08-21 18:50:41 -07:00
test_chat_completions_regression_e2e.py test(e2e): stop racing control-plane writes across the mcp, a2a, guardrail and passthrough suites (#34833) 2026-07-27 21:19:49 +00:00
test_chat_stream_contract_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_completions_endpoint_e2e.py test(e2e): cover legacy text /completions endpoint (#34431) 2026-08-04 13:48:07 -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): point four suites at models the providers still serve (#34567) 2026-07-25 10:32:08 -07:00
test_embeddings_endpoint_e2e.py test(e2e): record and replay the non-streaming provider flows 2026-08-21 18:50:41 -07:00
test_files_batches_contract_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_google_native_e2e.py test(e2e): cover google-native generateContent framing and prometheus queue time (#34650) 2026-08-12 01:28:26 +00:00
test_image_edits_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_image_generation_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_messages_azure_foundry_e2e.py test(e2e): fail the run when a Rust gateway silently serves /messages through Python (#34208) 2026-07-22 14:43:13 -07:00
test_messages_e2e.py test(e2e): record and replay the non-streaming provider flows 2026-08-21 18:50:41 -07:00
test_messages_mid_conversation_system_e2e.py test(e2e): require consecutive cache reads before the reminder turn 2026-08-20 03:03:08 -07:00
test_messages_mid_conversation_system_native_providers_e2e.py test(e2e): pin the unflagged Vertex cache test to us-east5 2026-08-20 03:13:14 -07:00
test_moderations_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_ocr_rust_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_passthrough_e2e.py test(e2e): drop the REALTIME_MODEL comment 2026-08-21 17:38:23 -07:00
test_passthrough_headers_e2e.py test(e2e): skip passthrough headers test until stage can route custom paths to provider creds (#34980) 2026-07-28 11:36:09 -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_realtime_http_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_rerank_e2e.py test(e2e): point four suites at models the providers still serve (#34567) 2026-07-25 10:32:08 -07:00
test_responses_bridge_streaming_e2e.py fix(responses_bridge): keep one chat completion id per stream and always stream completed responses 2026-07-24 20:09:05 +00:00
test_responses_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_responses_retrieve_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_vector_stores_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_vertex_passthrough_e2e.py test(e2e): settle control-plane writes across every replica, not just one 2026-08-07 19:36:30 -07:00