Skip to content

Commit d924226

Browse files
committed
Merge remote-tracking branch 'origin/litellm_internal_staging' into litellm_lit_5870_passthrough_e2e_pins_wt
2 parents 94239d2 + 02e67cd commit d924226

630 files changed

Lines changed: 43083 additions & 10297 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1025,7 +1025,7 @@ jobs:
10251025
name: Run tests
10261026
command: |
10271027
mkdir -p test-results
1028-
TEST_FILES=$(circleci tests glob "tests/agent_tests/**/test_*.py" | grep -v "^tests/agent_tests/local_only_agent_tests/")
1028+
TEST_FILES=$(circleci tests glob "tests/agent_tests/test_*.py")
10291029
echo "$TEST_FILES" | circleci tests run \
10301030
--verbose \
10311031
--command="tr ' ' '\\n' | awk '/\\.py/ {print; next} {sub(/\\.[A-Z][^.]*$/, \"\"); gsub(/\\./, \"/\"); print \$0 \".py\"}' | xargs uv run --no-sync python -m pytest \

.github/ci-coverage-allowlist.yml

Lines changed: 48 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,25 @@ description: >-
44
by a job nor listed here, so every entry below is a decision on the record.
55
66
test_paths:
7+
- reason: >-
8+
The caching suite in tests/local_testing, which runs nowhere. Every job that globs that
9+
directory either deselects it (local_testing_part1 and part2 carry `-k "... and not caching
10+
and not cache"`) or keeps only another keyword (langfuse, router, assistants), and no job
11+
names these files the way redis_caching_unit_tests names test_dual_cache.py. Measured
12+
2026-08-20 by collecting the directory under each job's own selector: 118 tests across
13+
these eight files are selected by none of them. Listed so the gap is a decision rather
14+
than an accident, and so the --slices guard has a baseline to ratchet down from. Revisit
15+
when tests/local_testing is ported off CircleCI, where the keyless part of this suite
16+
belongs in a real job
17+
paths:
18+
- tests/local_testing/test_cache_preset_key.py
19+
- tests/local_testing/test_caching.py
20+
- tests/local_testing/test_caching_handler.py
21+
- tests/local_testing/test_disk_cache_unit_tests.py
22+
- tests/local_testing/test_gcs_cache_unit_tests.py
23+
- tests/local_testing/test_prompt_caching.py
24+
- tests/local_testing/test_responses_stream_cache_keys.py
25+
- tests/local_testing/test_unit_test_caching.py
726
- reason: >-
827
The end-to-end suite runs against a deployed proxy from its own in-cluster rig rather than
928
from a pull request; it needs a live gateway and provider credentials no PR job holds
@@ -21,72 +40,24 @@ test_paths:
2140
- tests/documentation_tests/test_requests_lib_usage.py
2241
- tests/documentation_tests/test_standard_logging_payload.py
2342
- reason: >-
24-
Sibling files here are executed by name from the code-quality workflow; this one is referenced
25-
by no job
43+
Named like a test but shaped like a benchmark: it fetches live image URLs, times aiohttp
44+
against httpx, prints the ratio, and asserts nothing, so pytest cannot collect it (its
45+
functions take arguments, not fixtures) and running it beside its siblings in the
46+
code-quality workflow would add a network dependency for a number nothing reads. Exempt
47+
as a script rather than as an unresolved gap; revisit by deleting it once the aiohttp
48+
choice it informed is settled
2649
paths:
2750
- tests/code_coverage_tests/test_aio_http_image_conversion.py
2851
- reason: >-
29-
A second mirror of the package tree living beside tests/test_litellm, which is the mirror the
30-
repo convention names; only test_no_hardcoded_secrets.py is invoked, from the linting
31-
workflow, and whether this directory should exist at all is unresolved
52+
The last file of a second mirror that sat beside tests/test_litellm and ran nowhere. Its
53+
other 33 files landed in the real mirror during August 2026, 30 as moves and 3 by merging
54+
their bodies into the live file of the same name. This one cannot follow either route yet:
55+
its live twin was rewritten from 1268 lines to 9434, and of the 19 tests here 5 have no
56+
counterpart while 25 assertions fail against today's code, so what survives that rewrite
57+
is a judgement about the endpoints, not a merge. Revisit by deciding which of the five
58+
behaviours still hold
3259
paths:
33-
- tests/litellm/a2a_protocol/providers/pydantic_ai_agents/test_pydantic_ai_agent_headers.py
34-
- tests/litellm/a2a_protocol/providers/pydantic_ai_agents/test_pydantic_ai_agent_transformation.py
35-
- tests/litellm/integrations/helicone/test_helicone_gemini.py
36-
- tests/litellm/litellm_core_utils/test_json_schema_validation.py
37-
- tests/litellm/llms/anthropic/test_anthropic_reasoning_effort.py
38-
- tests/litellm/llms/anthropic/test_anthropic_schema_filter.py
39-
- tests/litellm/llms/azure/test_azure_embedding.py
40-
- tests/litellm/llms/bedrock/embed/test_embedding.py
41-
- tests/litellm/llms/bedrock/test_nova_imported_models.py
42-
- tests/litellm/llms/deepseek/chat/test_deepseek_chat_transformation.py
43-
- tests/litellm/llms/gradient_ai/chat/test_gradient_ai_chat_transformation.py
44-
- tests/litellm/llms/oci/chat/test_oci_chat_transformation.py
45-
- tests/litellm/llms/openai_like/test_abliteration_provider.py
46-
- tests/litellm/llms/openai_like/test_assemblyai_provider.py
47-
- tests/litellm/llms/openai_like/test_empiriolabs_provider.py
48-
- tests/litellm/llms/vertex_ai/agent_engine/test_transformation.py
49-
- tests/litellm/llms/vertex_ai/gemini/test_transformation.py
50-
- tests/litellm/llms/vertex_ai/text_to_speech/test_transformation.py
5160
- tests/litellm/proxy/_experimental/mcp_server/test_discoverable_endpoints.py
52-
- tests/litellm/proxy/agent_endpoints/test_agent_rbac.py
53-
- tests/litellm/proxy/common_utils/test_rbac_utils.py
54-
- tests/litellm/proxy/management_endpoints/test_common_utils.py
55-
- tests/litellm/proxy/management_endpoints/test_cost_estimate_endpoint.py
56-
- tests/litellm/proxy/test_claude_code_marketplace.py
57-
- tests/litellm/proxy/test_init_litellm_callbacks.py
58-
- tests/litellm/proxy/test_prisma_engine_watchdog.py
59-
- tests/litellm/proxy/vector_store_endpoints/test_vector_store_rbac.py
60-
- tests/litellm/test_bedrock_extended_beta_models.py
61-
- tests/litellm/test_bedrock_nemotron_super.py
62-
- tests/litellm/test_proxy_auth.py
63-
- tests/litellm/test_router_retry_backoff_headers.py
64-
- tests/litellm/test_sambanova_model_metadata.py
65-
- tests/litellm/test_stream_chunk_builder_images.py
66-
- reason: >-
67-
Legacy proxy suite superseded by the proxy shards; no job invokes it and whether it still
68-
describes supported behaviour is unresolved
69-
paths:
70-
- tests/old_proxy_tests/tests/test_anthropic_context_caching.py
71-
- tests/old_proxy_tests/tests/test_anthropic_sdk.py
72-
- tests/old_proxy_tests/tests/test_async.py
73-
- tests/old_proxy_tests/tests/test_gemini_context_caching.py
74-
- tests/old_proxy_tests/tests/test_langchain_embedding.py
75-
- tests/old_proxy_tests/tests/test_langchain_request.py
76-
- tests/old_proxy_tests/tests/test_llamaindex.py
77-
- tests/old_proxy_tests/tests/test_mistral_sdk.py
78-
- tests/old_proxy_tests/tests/test_openai_embedding.py
79-
- tests/old_proxy_tests/tests/test_openai_exception_request.py
80-
- tests/old_proxy_tests/tests/test_openai_request.py
81-
- tests/old_proxy_tests/tests/test_openai_request_with_traceparent.py
82-
- tests/old_proxy_tests/tests/test_openai_simple_embedding.py
83-
- tests/old_proxy_tests/tests/test_openai_tts_request.py
84-
- tests/old_proxy_tests/tests/test_pass_through_langfuse.py
85-
- tests/old_proxy_tests/tests/test_q.py
86-
- tests/old_proxy_tests/tests/test_simple_traceparent_openai.py
87-
- tests/old_proxy_tests/tests/test_vertex_sdk_forward_headers.py
88-
- tests/old_proxy_tests/tests/test_vtx_embedding.py
89-
- tests/old_proxy_tests/tests/test_vtx_sdk_embedding.py
9061
- reason: >-
9162
No job invokes this suite and its files mix pure transformation tests with ones driving live
9263
vendor vector stores, so assigning them needs a per-file decision
@@ -116,6 +87,14 @@ test_paths:
11687
- tests/load_tests/test_otel_load_test.py
11788
- tests/load_tests/test_vertex_embeddings_load_test.py
11889
- tests/load_tests/test_vertex_load_tests.py
90+
- reason: >-
91+
A local-only agent rig: test_a2a_completion_bridge.py needs a LangGraph server on
92+
localhost:2024 and test_a2a.py drives a live A2A endpoint, so neither can run in a
93+
pull request job. Until 2026-08-20 the CircleCI agent job hid them behind a grep -v
94+
that this census could not see; the glob now excludes them structurally and this entry
95+
is the decision on the record. Revisit when the A2A bridge gets a recorded-wire fixture
96+
paths:
97+
- tests/agent_tests/local_only_agent_tests
11998
- reason: >-
12099
Third-party integration tests that skip themselves without OCI configuration or sandbox
121100
credentials, neither of which a pull request job holds
@@ -124,14 +103,14 @@ test_paths:
124103
- tests/integration/test_oci_integration.py
125104
- tests/integration/test_oci_proxy_integration.py
126105
- reason: >-
127-
Two prompt-factory tests sitting at the top level of tests/ instead of under the
128-
tests/test_litellm mirror the shards enumerate; they need moving rather than a shard entry
129-
paths:
130-
- tests/litellm_core_utils/test_anthropic_dedup_factory.py
131-
- tests/litellm_core_utils/test_bedrock_converse_dedup_factory.py
132-
- reason: >-
133-
A unit test for the proxy-extras package that no job invokes, while the package's other tests
134-
live under tests/proxy_migration_tests
106+
A unit test for the proxy-extras package that no job invokes, while the package's other
107+
tests live under tests/proxy_migration_tests. Measured 2026-08-20: 24 of its 28 tests pass
108+
and the 4 in TestMigrationSQLIdempotency fail, because 13 migrations from 2026-03 onward use
109+
bare CREATE TABLE, ADD COLUMN, CREATE INDEX and ADD CONSTRAINT rather than the guarded forms
110+
this file requires. It also matches those keywords inside SQL comments, so two further
111+
migrations are reported that are in fact fine. Wiring it up means deciding what to do about
112+
the 13 first, and they cannot simply be edited: Prisma checksums an applied migration, so a
113+
changed one breaks migrate deploy for existing installs
135114
paths:
136115
- tests/litellm-proxy-extras/test_litellm_proxy_extras_utils.py
137116

0 commit comments

Comments
 (0)