litellm/tests/e2e/llm_translation
Yuneng Jiang 09a98f5505
test(e2e): settle control-plane writes across every replica, not just one
The suite already waits for a new model or agent to become servable before
handing it back, but that wait returns on the first successful read. Every
request opens a fresh connection (e2e_http calls requests.* with no Session), so
a load-balanced Service routes each one independently: one successful read proves
one replica converged, and the caller's next request re-rolls and can land on a
replica that has not reloaded yet.

At replicaCount: 2 this surfaced as 30 failures on a SHA that is green at 1
replica -- 400 "Invalid model name passed", 404 "Guardrail not found", "no
healthy deployments for this model", and a /model/info listing that contained
one of two models created moments apart.

Add PROPAGATION_TIMEOUT (default 15s, override E2E_PROPAGATION_TIMEOUT) and
settle_propagation(), sized off the proxy's proxy_config_reload_interval_seconds
(30s by default, 7s on the e2e stack) plus margin, and settle after every
control-plane create whose object the suite then uses:

- ProxyClient.create_model and A2AClient.register_agent, after their existing
  polls -- the poll still fails loudly if the object never appears at all
- GuardrailsClient.register, which had no barrier; create_content_filter_guardrail
  and create_bedrock_guardrail now route through it instead of POSTing directly
- the guardrail creates in mcp_client and logging_client
- the vertex passthrough model, whose body cannot go through create_model

Left alone: the /model/new calls that assert a 403 or read back a status code,
since they never use the model.
2026-08-07 19:36:30 -07:00
..
realtime fix(bedrock): emit Nova Sonic realtime session.created on connect and session.updated on session.update (#34133) 2026-07-22 06:15:37 +00: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 revert: "test(e2e): vendor API strategy coverage across endpoints (#34649)" 2026-08-04 19:00:34 -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 test(e2e): move load/perf testing out of the main suite and drop the vllm passthrough test (#35820) 2026-08-04 14:12:25 -07:00
test_audio_speech_e2e.py revert: "test(e2e): vendor API strategy coverage across endpoints (#34649)" 2026-08-04 19:00:34 -07:00
test_audio_transcriptions_e2e.py revert: "test(e2e): vendor API strategy coverage across endpoints (#34649)" 2026-08-04 19:00:34 -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_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_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 revert: "test(e2e): vendor API strategy coverage across endpoints (#34649)" 2026-08-04 19:00:34 -07:00
test_image_edits_e2e.py revert: "test(e2e): vendor API strategy coverage across endpoints (#34649)" 2026-08-04 19:00:34 -07:00
test_image_generation_e2e.py revert: "test(e2e): vendor API strategy coverage across endpoints (#34649)" 2026-08-04 19:00:34 -07: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 revert: "test(e2e): vendor API strategy coverage across endpoints (#34649)" 2026-08-04 19:00:34 -07:00
test_messages_mid_conversation_system_e2e.py test(e2e): unblock the ui suite, fix the mcp registration race, park two known product bugs (#34853) 2026-07-27 19:20:57 -07:00
test_messages_mid_conversation_system_native_providers_e2e.py test(e2e): unblock the ui suite, fix the mcp registration race, park two known product bugs (#34853) 2026-07-27 19:20:57 -07:00
test_moderations_e2e.py revert: "test(e2e): vendor API strategy coverage across endpoints (#34649)" 2026-08-04 19:00:34 -07:00
test_ocr_rust_e2e.py revert: "test(e2e): vendor API strategy coverage across endpoints (#34649)" 2026-08-04 19:00:34 -07:00
test_passthrough_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_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_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 revert: "test(e2e): vendor API strategy coverage across endpoints (#34649)" 2026-08-04 19:00:34 -07: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