test(e2e): wire claude_code compat matrix cells into the coverage registry - #33477
test(e2e): wire claude_code compat matrix cells into the coverage registry#33477mateo-berri wants to merge 1 commit into
Conversation
Greptile SummaryThis PR wires all 75 Claude Code compat matrix test cells (15 features × 5 providers) into the coverage registry by adding
Confidence Score: 5/5Safe to merge — the change is purely additive test metadata with no production code or test logic affected. All 75 marker IDs in the test decorators match their corresponding rows in llm_conversational.yaml. The 7 reused anthropic rows already existed before this PR; the 68 new rows are correctly typed against the updated LlmCapability schema. The basic_messaging_* files correctly gain import pytest, and no existing assertion logic was touched anywhere in the diff. No files require special attention.
|
| Filename | Overview |
|---|---|
| tests/e2e/coverage_registry/llm_conversational.yaml | Adds 68 new registry rows across bedrock_invoke, bedrock_converse, vertex, azure_foundry, and anthropic routes; all IDs, capability values, and source paths match their corresponding test file markers. |
| tests/e2e/coverage_registry/schema.py | Extends LlmCapability with 7 new literals (count_tokens, long_context, pdf, prompt_cache_1h, thinking_with_tool_use, tool_search, web_search) in alphabetical order; no other schema logic changed. |
| tests/e2e/CLAUDE.md | Grammar vocabulary updated to list the 7 new capability values; kept in sync with schema.py additions. |
| tests/e2e/claude_code/basic_messaging_non_streaming/test_anthropic.py | Representative of the 10 basic_messaging_* files: adds import pytest and @pytest.mark.covers pointing to the pre-existing llm.messages.anthropic.basic.nonstream.works row. |
| tests/e2e/claude_code/vision/test_vertex_ai.py | Representative of non-basic_messaging feature cells: adds @pytest.mark.covers mapping to the newly seeded llm.messages.vertex.vision.nonstream.works row; no logic change. |
Reviews (1): Last reviewed commit: "test(e2e): wire claude_code compat matri..." | Re-trigger Greptile
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Relevant issues
Resolves caveat 5 of #32548: the Claude Code compat matrix cells under
tests/e2e/claude_code/carried no@pytest.mark.covers(...)markers, so they never fed the coverage registry even though the registry's LLM grammar was seeded from this matrixLinear ticket
Pre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
@greptileaito re-request a review after pushing changes)Delays in PR merge?
If you're seeing a delay in your PR being merged, ping the LiteLLM Team on Slack (#pr-review).
Screenshots / Proof of Fix
This PR is coverage-registry wiring with no proxy behavior change, so the end-user-visible surface is the collector itself: its output is what ships coverage to Grafana. The proof is therefore the collector run, before and after
Before, at base
ff4a40f017(compat cells invisible to the registry):After, at
c24abe0fd8(all 75 compat cells feed the registry):Proof that the wiring bites, captured at
c24abe0fd8by mutating one marker id to a nonexistent row and rerunning (the mutation was reverted before commit):Type
✅ Test
Changes
Adds one
@pytest.mark.covers(...)decorator to each of the 75 Claude Code compat matrix cell tests (15 features x 5 providers), mapping every cell onto the registry grammarllm.messages.<route>.<capability>.<streaming>.works. Matrix provider ids map to registry routes asvertex_ai->vertexandazure->azure_foundry; the other three match directly. The 10basic_messaging_*files gain animport pytestsince they previously only imported the shared cell helper. No test logic changes7 markers reuse the existing seeded
llm.messages.anthropic.*rows (basic nonstream/stream, tool_use nonstream/stream, vision, prompt_cache_5m, thinking). The remaining 68 cells had no registry row, sollm_conversational.yamlgains 68 newllm.messages.*rows grouped by route, sourced to their covering cell file. Tiers follow the established per-route pattern: basic, tool_use, and vision are P0 on the bedrock_invoke, bedrock_converse, and vertex routes; everything else, including all azure_foundry rows, is P1Seven capability values had no vocabulary entry, so
LlmCapabilityincoverage_registry/schema.pygainscount_tokens,long_context,pdf,prompt_cache_1h,thinking_with_tool_use,tool_search, andweb_search, and the grammar vocab lines intests/e2e/CLAUDE.mdare updated to match so that file stays self-describingQA runbook
cd tests/e2e && PYTHONPATH=. python -m coverage_registry.collector --strictand expect exit 0 with Core LLMs at 83/123tests/e2e/claude_code/vision/test_vertex_ai.py, and confirm its single test carries@pytest.mark.covers("llm.messages.vertex.vision.nonstream.works")matching a row intests/e2e/coverage_registry/llm_conversational.yaml--strict, and expect exit 1 naming the orphan marker; revert the mutationpytest tests/e2e/claude_code --collect-only -qand expect all 414 nodes to collect cleanly under the strict iniFinal Attestation