litellm/tests/e2e
Yuneng Jiang 30a691ed55
feat(e2e): cache Bedrock streaming responses
The Claude Code compat cells drive the real CLI, which always streams, so
converse-stream and invoke-with-response-stream were most of the suite's
Bedrock traffic and all of it bypassed the edge.

AWS frames those as binary vnd.amazon.eventstream rather than SSE, so
botocore's own parser reads the frames and validates both CRCs, and each
endpoint is then held to its terminal grammar. Two details drove the rule.
A ConverseStream ends with metadata, not with messageStop, and metadata is
what carries the token usage litellm prices the call from, so a stream cut
between the two names a stop reason but would replay as a free call. And a
dropped connection is invisible to the parser: it yields the frames it did
receive and silently discards a trailing partial one, so a stream cut one
byte short parses clean. The body is checked against the frame lengths it
declares to catch that.

The invoke stream carries the ordinary Anthropic event grammar inside its
chunk frames, so it shares the completeness rule with the SSE mounts.

Validated against three real Bedrock eventstream captures, and the tests
build their own frames rather than pasting a capture, with one test holding
that framing to botocore's parser.
2026-09-16 06:46:19 -07:00
..
a2a test(e2e): settle control-plane writes across every replica, not just one 2026-08-07 19:36:30 -07:00
access_control test(e2e): require a 200 inside the regenerate grace window and drop the helper docstrings 2026-09-05 11:53:22 -07:00
batches chore: merge litellm_internal_staging into litellm_e2e_reliability_module_cells 2026-09-12 13:05:02 -07:00
claude_code fix(e2e): wait for every gateway before using a new model and keep the network rerun 2026-09-05 16:10:40 -07:00
coverage_registry Merge pull request #39857 from BerriAI/litellm_e2e_reliability_module_cells 2026-09-15 11:38:51 -07:00
gateway chore: merge current staging into JWT E2E infrastructure 2026-09-11 17:13:52 -07:00
guardrails test: stop guardrail retries at the polling deadline 2026-09-08 17:02:00 -07:00
llm_translation fix(e2e): keep the tool-continuation echo-back test on the live path 2026-09-16 05:09:04 -07:00
load chore: merge litellm_internal_staging into litellm_e2e_reliability_module_cells 2026-09-12 13:05:02 -07:00
logging fix(mcp): honor an explicit null on toolset update, cover MCP lifecycle e2e (#40022) 2026-09-08 22:50:13 -07:00
management test: enforce isolated actors and stop OIDC process groups 2026-09-12 13:49:49 -07:00
mcp fix(mcp): honor an explicit null on toolset update, cover MCP lifecycle e2e (#40022) 2026-09-08 22:50:13 -07:00
other test(e2e): harden JWT fixtures and cover management lifecycles 2026-09-11 16:36:12 -07:00
quota_management fix(e2e): record cookie-setting provider responses and keep prompt-caching tests live 2026-09-15 20:26:20 -07:00
router test(e2e): skip the override strategy cells and describe the 1s cooldown cache 2026-09-12 17:56:23 -07:00
ui fix(e2e): expect models filters to persist after reload 2026-09-15 18:21:43 -07:00
CLAUDE.md docs(e2e): ban unit tests under tests/e2e (#33852) 2026-09-12 21:13:43 -07:00
conftest.py fix(e2e): keep the tool-continuation echo-back test on the live path 2026-09-16 05:09:04 -07:00
CONTRIBUTING.md Merge pull request #39857 from BerriAI/litellm_e2e_reliability_module_cells 2026-09-15 11:38:51 -07:00
e2e_config.py chore: merge litellm_internal_staging into litellm_e2e_reliability_module_cells 2026-09-12 13:05:02 -07:00
e2e_db.py test(e2e): guard destructive spend-log truncate behind an explicit opt-in (#33751) 2026-07-20 08:47:39 -07:00
e2e_http.py feat(e2e): cache exact provider responses for 24 hours 2026-09-15 18:14:18 -07:00
fixture_bundle.py test: add strict stateless provider replay identity 2026-09-14 16:55:43 -07:00
fixture_canonical.py feat(e2e): key the provider cache per test and mount Bedrock behind it 2026-09-16 02:15:46 -07:00
fixture_mode.py test: add strict stateless provider replay identity 2026-09-14 16:55:43 -07:00
fixture_profile.py test: preserve strict replay numeric spelling 2026-09-14 17:11:56 -07:00
idp.py test: enforce isolated actors and stop OIDC process groups 2026-09-12 13:49:49 -07:00
idp_realm.json test(e2e): harden JWT fixtures and cover management lifecycles 2026-09-11 16:36:12 -07:00
junit_properties.py test: bind management E2E callers and isolate JWT actors 2026-09-12 13:29:04 -07:00
lifecycle.py fix(e2e): clean up batch files reliably and expire Azure inputs 2026-09-07 12:15:06 -07:00
models.py feat(e2e): key the provider cache per test and mount Bedrock behind it 2026-09-16 02:15:46 -07:00
otel_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
PROVIDER_CACHE.md feat(e2e): cache Bedrock streaming responses 2026-09-16 06:46:19 -07:00
provider_cache.py feat(e2e): cache Bedrock streaming responses 2026-09-16 06:46:19 -07:00
provider_cache_redis.py feat(e2e): cache exact provider responses for 24 hours 2026-09-15 18:14:18 -07:00
provider_cache_routing.py test(e2e): enforce the cross-region invariant on the Bedrock allowlist 2026-09-16 04:41:29 -07:00
provider_edge.py feat(e2e): cache the responses and embeddings endpoints behind the edge 2026-09-16 02:34:09 -07:00
provider_edge_bedrock.py feat(e2e): cache the responses and embeddings endpoints behind the edge 2026-09-16 02:34:09 -07:00
proxy_client.py feat(e2e): cache exact provider responses for 24 hours 2026-09-15 18:14:18 -07:00
pytest.ini chore: merge litellm_internal_staging into litellm_e2e_reliability_module_cells 2026-09-12 13:05:02 -07:00
test_e2e_http.py test: bind management E2E callers and isolate JWT actors 2026-09-12 13:29:04 -07:00
test_fixture_bundle.py feat(e2e): record and replay streamed provider responses chunk-for-chunk 2026-08-24 12:51:44 -07:00
test_fixture_canonical.py test(e2e): pin query params and multipart form fields as replay match-key identity 2026-08-20 15:59:34 -04:00
test_fixture_mode.py feat(e2e): move record/replay to the provider edge (LIT-5745) 2026-08-19 18:39:15 -07:00
test_idp.py test: enforce isolated actors and stop OIDC process groups 2026-09-12 13:49:49 -07:00
test_junit_properties.py test(e2e): read JUnit properties off the real collected pytest Item 2026-09-01 19:12:07 -07:00
test_provider_edge.py feat(e2e): key the provider cache per test and mount Bedrock behind it 2026-09-16 02:15:46 -07:00
test_proxy_client.py test: enforce isolated actors and stop OIDC process groups 2026-09-12 13:49:49 -07:00
transport.py Merge pull request #39857 from BerriAI/litellm_e2e_reliability_module_cells 2026-09-15 11:38:51 -07:00