litellm/tests
Itay Ovadia 155e4080c4 fix(guardrails): align the max_messages window and stop identity being taken from the request body
Three findings from review of the previous commit.

max_messages applied the same number to two lists that count different things:
texts is fragment-based (a multimodal turn contributes several entries, a
tool-call-only turn contributes none) while structured_messages is message-based,
so the two views of the payload could cover different parts of the conversation,
sending text from an omitted turn or dropping text from a retained one. The
message window is now the source of truth and the text window is the number of
fragments those retained messages contain, counted with a role-agnostic helper so
an unenumerated role cannot silently shrink it.

/guardrails/apply_guardrail built request_data straight from the caller's
metadata, so a caller could claim a user_api_key_alias or user_api_key_team_id
that a guardrail exempts and get its text back unscanned. The authenticated
identity is now layered on top of the caller's metadata via the same sanitizer
the in-line path uses, so what authentication established wins. Caller metadata
that is not identity still passes through untouched, and every guardrail on that
route now sees the caller information it already sees in-line.

The per_session dedup cache was keyed only on the caller-supplied session id, so
whoever claimed an id first suppressed another tenant's entry for the same id.
The key is now namespaced by the authenticated key hash, falling back to the team
id.
2026-08-15 23:40:28 +03:00
..
agent_tests test: repair stale CircleCI contracts 2026-08-08 12:19:29 -07:00
audio_tests test: remove tests that never execute 2026-08-12 10:45:38 -07:00
base_sdk_tests fix(deps): ship boto3 with the base SDK so bedrock works out of the box (#36568) 2026-08-11 14:39:10 -07:00
basic_proxy_startup_tests
batches_tests test: remove tests that never execute 2026-08-12 10:45:38 -07:00
benchmarks
code_coverage_tests feat(search): add Nimble as a search provider (#36347) 2026-08-14 17:09:58 -07:00
documentation_tests fix(ci): make the env-key doc gate see bare get_secret and get_secret_str reads (#35996) 2026-08-05 14:49:55 -07:00
e2e Merge branch 'litellm_internal_staging' into litellm_shadcn_modelhub_0814 2026-08-14 09:59:57 -07:00
enterprise fix(proxy): report has_more false on caller-scoped file list pages 2026-08-08 17:28:43 -07:00
guardrails_tests fix(guardrails): honor configured timeout in Zscaler AI Guard (#36110) 2026-08-07 00:25:52 +00:00
image_gen_tests test: remove tests that never execute 2026-08-12 10:45:38 -07:00
integration
litellm fix(proxy): deny agent access when key and team grants resolve to nothing (#36221) 2026-08-07 20:44:11 +00:00
litellm-proxy-extras test: remove tests that never execute 2026-08-12 10:45:38 -07:00
litellm_core_utils
litellm_utils_tests fix(reset_budget_job): atomic budget cascade with chunked reset scans (#36287) 2026-08-10 14:42:36 -07:00
llm_responses_api_testing test: repair stale CircleCI contracts 2026-08-08 12:19:29 -07:00
llm_translation Merge pull request #36685 from BerriAI/litellm_restore_shadowed_tests 2026-08-12 12:06:37 -07:00
load_tests
local_testing test: remove tests that never execute 2026-08-12 10:45:38 -07:00
logging_callback_tests test: address review on the restored SQS tests 2026-08-12 11:47:11 -07:00
mcp_tests fix(mcp): keep REST tool listing in step with key/team grant enforcement 2026-07-30 22:13:10 -07:00
multi_instance_e2e_tests
ocr_tests test(ocr): use mistral-document-ai-2512 in azure_ai OCR tests 2026-07-15 18:13:22 -07:00
old_proxy_tests/tests
openai_endpoints_tests fix(batches): register managed output files on batch cancel 2026-08-05 18:28:52 -07:00
otel_tests
pass_through_tests
pass_through_unit_tests fix(proxy): re-assert the authenticated identity on passthrough requests (#36121) 2026-08-07 00:41:29 +00:00
proxy_admin_ui_tests fix(access groups): sync assigned_team_ids from the team write paths (#36825) 2026-08-14 04:45:36 +00:00
proxy_behavior test: repair stale CircleCI contracts 2026-08-08 12:19:29 -07:00
proxy_e2e_anthropic_messages_tests
proxy_migration_tests test(docker): gate the componentized gateway and backend images on an arbitrary-uid offline boot (#36136) 2026-08-07 09:57:37 -07:00
proxy_security_tests
proxy_unit_tests fix(proxy): requeue spend logs when the DB write fails with a transport error (#36716) 2026-08-14 20:49:45 -07:00
router_unit_tests test: remove tests that never execute 2026-08-12 10:45:38 -07:00
scim_tests
search_tests feat(search): add Nimble as a search provider (#36347) 2026-08-14 17:09:58 -07:00
spend_tracking_tests
store_model_in_db_tests feat(team): custom metadata validation hook for team create and update (#33353) 2026-08-03 18:37:45 -07:00
test_litellm fix(guardrails): align the max_messages window and stop identity being taken from the request body 2026-08-15 23:40:28 +03:00
unified_google_tests
vector_store_tests
windows_tests
__init__.py
_fake_openai_endpoint_server.py
_flush_vcr_cache.py
_live_test_helpers.py
_openai_record_replay_proxy.py
_vcr_conftest_common.py
_vcr_redis_persister.py
_ws_vcr.py
eval_swe_bench.py
fake_openai_endpoint.py
gettysburg.wav
large_text.py
openai_batch_completions.jsonl
pyrightconfig.json
README.MD
test_anthropic_compaction_usage.py
test_budget_management.py
test_callbacks_on_proxy.py
test_debug_warning.py
test_default_encoding_non_root.py
test_end_users.py
test_fallbacks.py
test_gpt5_azure_temperature_support.py
test_health.py
test_keys.py
test_litellm_proxy_responses_config.py
test_logging.conf
test_models.py
test_new_vector_store_endpoints.py
test_openai_endpoints.py
test_organizations.py
test_otel_thread_leak.py
test_presidio_latency.py
test_proxy_server_non_root.py
test_ratelimit.py
test_resource_cleanup.py
test_service_logger_otel.py fix(langfuse): send v4 ingestion header for otel callback (#33907) 2026-07-18 20:36:51 -07:00
test_spend_logs.py
test_team.py
test_team_logging.py
test_team_members.py
test_users.py

In total litellm runs 1000+ tests

[02/20/2025] Update:

To make it easier to contribute and map what behavior is tested,

we've started mapping the litellm directory in tests/test_litellm

This folder can only run mock tests.