litellm/tests/test_litellm
milan-berri df2e1bca46
feat: allow JWT and OAuth2 auth to coexist on the same instance (#23153)
When both enable_jwt_auth and enable_oauth2_auth are True, the proxy now
routes tokens based on their format:
- JWT tokens (3 dot-separated parts) -> JWT auth handler
- Opaque tokens -> OAuth2 auth handler

This enables using JWT for human users and OAuth2 for M2M (machine) clients
on the same LiteLLM instance. Previously, enabling OAuth2 would intercept
all tokens on LLM API routes before JWT auth could run.

When only one auth method is enabled, behavior is unchanged (backward compatible).
2026-03-09 08:41:27 -07:00
..
a2a_protocol
anthropic_interface/exceptions
caching fix(caching): check REDIS_CLUSTER_NODES env var in Cache and Router class selection (#22790) 2026-03-06 17:31:30 -08:00
completion_extras test(streaming): add comprehensive parallel tool call integration test 2026-03-04 10:17:20 +00:00
containers
enterprise Address review feedback: remove dead code, add error handling, strengthen test assertions 2026-03-06 09:25:50 -08:00
expected_responses_api_request
experimental_mcp_client
google_genai
images Merge pull request #22307 from Chesars/fix/22244-image-edit-custom-pricing 2026-02-27 16:38:34 -03:00
integrations Fix OTEL span redundancy, orphaned guardrail traces, and missing response IDs 2026-03-07 04:32:23 +05:30
interactions fix(test): Update status enum values to match Google Interactions OpenAPI spec (#22061) 2026-02-24 20:26:11 -08:00
litellm_core_utils feat(openai): add 272K tier pricing for GPT-5.4/5.4-pro 2026-03-06 22:26:14 +05:30
llms fix(bedrock): strip output_config from Bedrock Invoke requests (#23042) 2026-03-07 19:33:53 -08:00
ocr Enable local file support for OCR (#22133) 2026-02-27 10:50:02 -08:00
passthrough fix(passthrough): propagate Azure 429/5xx errors in async streaming instead of silent HTTP 200 (#22913) 2026-03-05 10:12:43 -08:00
proxy feat: allow JWT and OAuth2 auth to coexist on the same instance (#23153) 2026-03-09 08:41:27 -07:00
responses Add tests for resp 2026-03-04 18:27:06 +05:30
router_strategy fix: complexity_router crashes on list-format message content (OpenAI multi-part messages) (#22761) 2026-03-04 16:18:49 -08:00
router_utils Fix encrypted content streaming affinity issue 2026-03-03 18:37:22 +05:30
secret_managers
test_router fix: use atomic increment-first pattern for model RPM rate limiting 2026-02-24 09:55:07 -03:00
types fix: add video_tokens to expected completion_tokens_details in test 2026-03-03 19:46:20 -03:00
vector_stores
__init__.py
conftest.py
log.txt
readme.md
test_a2a_registry_lookup.py
test_acompletion_session_reuse_e2e.py
test_add_deployment_no_master_key.py
test_aembedding_session_reuse_e2e.py
test_anthropic_beta_headers_filtering.py
test_azure_video_router.py
test_claude_haiku_4_5_config.py
test_claude_opus_4_6_config.py Fix apac.anthropic.claude-sonnet-4-6 -> au.anthropic.claude-sonnet-4-6 (#21466) 2026-03-05 15:54:26 -08:00
test_constants.py added configurable env for mcp timeouts (#22287) 2026-03-02 13:13:41 -08:00
test_container_router.py
test_cost_calculation_log_level.py
test_cost_calculator.py
test_deepseek_model_metadata.py
test_eager_tiktoken_load.py
test_exception_exports.py
test_exception_header_preservation.py Update test to righ place 2026-02-26 13:26:51 -08:00
test_exception_mapping_request_attribute.py
test_filter_out_litellm_params.py
test_get_blog_posts.py fix(ollama): thread api_base to get_model_info + graceful fallback (#21970) 2026-02-23 21:00:37 -08:00
test_gpt_image_cost_calculator.py
test_groq_streaming_encoding.py
test_lazy_imports.py
test_logging.py
test_lowest_latency_zero_tokens.py
test_main.py fix(models): set gpt-5.4-pro mode to responses instead of chat 2026-03-09 12:10:08 +01:00
test_model_param_helper.py
test_model_response_normalization.py
test_nested_drop_params.py
test_project_tags_pydantic.py fix: req changes 2026-02-27 13:33:34 +05:30
test_redis.py
test_register_model_custom_pricing.py test: fix misleading precedence test per review feedback 2026-03-02 08:31:33 +00:00
test_responses_api_bridge_non_stream.py
test_responses_id_security.py Fix responses ID security test for new request_cache parameter 2026-03-04 11:29:51 -03:00
test_router_google_genai.py
test_router_model_cost_isolation.py
test_router_per_deployment_num_retries.py
test_router_redis_init.py
test_router_silent_experiment.py
test_router.py CircleCI test stability (#23055) 2026-03-07 15:19:39 -08:00
test_service_logger.py
test_shared_session_integration.py
test_ssl_verify_unit.py
test_streaming_connection_cleanup.py
test_system_message_format_bug.py
test_utils.py CircleCI test stability (#23055) 2026-03-07 15:19:39 -08:00
test_uuid_helper.py
test_video_generation.py fix(ollama): thread api_base to get_model_info + graceful fallback (#21970) 2026-02-23 21:00:37 -08:00
test_xai_responses_auto_routing.py

Testing for litellm/

This directory 1:1 maps the the litellm/ directory, and can only contain mocked tests.

The point of this is to:

  1. Increase test coverage of litellm/
  2. Make it easy for contributors to add tests for the litellm/ package and easily run tests without needing LLM API keys.

File name conventions

  • litellm/proxy/test_caching_routes.py maps to litellm/proxy/caching_routes.py
  • test_<filename>.py maps to litellm/<filename>.py