litellm/tests/e2e
Yassin Kortam 75973b3f0c refactor(e2e): derive coverage denominator from product surface
The e2e coverage denominator was a hand-written set of per-prefix YAML rows,
one per behavior. That is self-fulfilling: the row and its covering test land
in the same PR, so a wanted-but-untested behavior never surfaces as a gap and
coverage becomes a number we grant ourselves. Each LLM row also restated its
own id, since subject_endpoint, route, capability, and streaming just re-split
the cell id that schema.py already validates.

The conversational core (chat_completions, messages, responses) is now generated
in product_surface.py from the typed vocabularies in schema.py crossed with the
supports_* capability metadata in model_prices_and_context_window.json, the same
file the proxy ships. A flagged capability is emitted for a route only when a
model on that route advertises the matching flag, so support added in that json
grows the denominator with no registry edit. The Anthropic-format messages
surface is the Claude Code compatibility matrix, so its capabilities are the CLI
feature set and are intentionally ungated.

The id-duplicating fields are gone from the schema. One Cell dataclass replaces
the discriminated union; its module is parsed from the id and the structural
facets are recovered on demand by parse_llm_id. The human fields (tier, source,
rationale, fail_before_fix, supported) move to a single overlay.yaml keyed by
cell id, owner-gated via CODEOWNERS, so ordinary test PRs only add a
@pytest.mark.covers marker. A generated cell with no overlay row defaults to P2,
so a newly grown surface shows up as an uncovered gap rather than vanishing.

The collector keeps its output contracts (text, JSON, Prometheus, Loki); the
only addition is a text-only route-table drift warning when the vocabulary
enumerates an LLM endpoint the live proxy no longer serves. Generation covers
the conversational core; the non-core LLM operations and the behavior modules
are carried by the overlay for now, and wiring their own product-surface sources
into generation is the documented follow-up.
2026-07-17 11:59:25 -07:00
..
access_control test(e2e): migrate access-control and inference-endpoint regression tests (#32016) 2026-07-05 01:39:10 +00:00
batches test: e2e staging leftovers (#33613) 2026-07-16 17:52:41 -07:00
claude_code test(e2e): harness fixes for stage job green (skips + router/UI/budget) (#33634) 2026-07-16 20:30:30 -07:00
coverage_registry refactor(e2e): derive coverage denominator from product surface 2026-07-17 11:59:25 -07:00
grafana feat(e2e): emit structured E2E_RESULT lines for package status history (#33578) 2026-07-16 15:01:01 -07:00
llm_translation test(e2e): scope virtual keys to the deployment under test 2026-07-14 17:12:15 -07:00
logging test(e2e): datadog log delivery for streamed routes, read back from the real datadog api (#33566) 2026-07-16 19:37:07 -07:00
management test(e2e): harness fixes for stage job green (skips + router/UI/budget) (#33634) 2026-07-16 20:30:30 -07:00
quota_management test(e2e): assert an org budget block is a 429 naming the organization (#33638) 2026-07-17 11:48:18 -07:00
router test(e2e): harness fixes for stage job green (skips + router/UI/budget) (#33634) 2026-07-16 20:30:30 -07:00
bob_the_builder.py test: litellm fix failing tests (#32577) 2026-07-09 13:54:45 -07:00
CLAUDE.md refactor(e2e): derive coverage denominator from product surface 2026-07-17 11:59:25 -07:00
conftest.py feat(e2e): emit structured E2E_RESULT lines for package status history (#33578) 2026-07-16 15:01:01 -07:00
CONTRIBUTING.md ci: gate tests/e2e on zero basedpyright errors in pre-commit and lint CI 2026-07-11 10:25:22 -07:00
docker-compose.yml test: e2e staging leftovers (#33613) 2026-07-16 17:52:41 -07:00
e2e_config.py test(e2e): datadog log delivery for streamed routes, read back from the real datadog api (#33566) 2026-07-16 19:37:07 -07:00
e2e_gateway.py fix(e2e/claude_code): unblock stage collection, align proxy env names, register compat models (#33433) 2026-07-16 11:05:31 -07:00
e2e_http.py test(e2e): otel trace completeness on streaming chat, messages, and responses (LIT-3787) (#33234) 2026-07-14 20:23:54 -07:00
e2e_result_reporter.py feat(e2e): emit structured E2E_RESULT lines for package status history (#33578) 2026-07-16 15:01:01 -07:00
lifecycle.py test(e2e): add live batches suite across providers and routing scenarios (#30958) 2026-07-02 08:05:23 -07:00
models.py test: e2e staging leftovers (#33613) 2026-07-16 17:52:41 -07:00
pytest.ini refactor(e2e): move budgets and spend_tracking suites under quota_management 2026-07-11 16:14:21 -07:00
transport.py test(e2e): probe the full spend read surface including schema-hidden routes (#32267) 2026-07-06 14:02:05 -07:00