litellm/tests
Harshith Uppula 2c718ea191 fix(anthropic, bedrock): drop temperature/top_p for Claude Opus 4.7
Anthropic's Messages API returns 400
(``temperature is deprecated for this model``) when ``temperature``,
``top_p``, or ``top_k`` is set to any non-default value on Claude
Opus 4.7 — per the Opus 4.7 migration guide. Previously
``AnthropicConfig.get_supported_openai_params`` unconditionally
advertised ``temperature`` and ``top_p`` for every Anthropic model,
so ``litellm.drop_params=True`` was a no-op on 4.7: litellm had no
reason to drop a param it believed was supported, the value was
forwarded to the API, and end users took a hard 400. The same shape
hits ``AmazonConverseConfig`` for Bedrock-routed Opus 4.7.

Fix follows the maintainers' existing capability-flag pattern
(``supports_*`` keys on model_prices_and_context_window.json read via
``_is_explicitly_disabled_factory``) rather than hardcoding model
strings in transformation logic:

* Mark every Anthropic-API-shape Opus 4.7 entry with
  ``supports_temperature: false`` / ``supports_top_p: false`` —
  canonical Anthropic, all four Bedrock Converse regions
  (anthropic/global/us/eu/au), Azure AI, and Vertex AI. Sonnet 4.6,
  Haiku 4.5, Opus 4.6, and 3.x models are unchanged. OpenRouter and
  Perplexity entries are deliberately left alone — they route through
  different configs.

* New ``AnthropicConfig._param_explicitly_unsupported`` helper reads
  ``supports_{param}`` via the shared
  ``_is_explicitly_disabled_factory`` (same chain that drives
  ``_is_reasoning_effort_level_explicitly_disabled`` in
  ``OpenAIGPT5Config``). When the registry lookup misses — e.g. an
  unreleased dated 4.7 snapshot — falls back to the existing
  ``_is_claude_4_7_model`` family check so future 4.7 variants are
  covered before anyone updates the JSON.

* ``AnthropicConfig.get_supported_openai_params`` filters the helper
  across every param (not just temperature) so future deprecations
  only need a JSON entry. ``map_openai_params`` honours the same
  helper inside the ``temperature`` / ``top_p`` branches so direct
  callers don't leak the params either, even without ``drop_params``.

* ``AmazonConverseConfig.get_supported_openai_params`` mirrors the
  filter so Bedrock-routed Opus 4.7 gets the same treatment.

The Databricks workspace endpoint surfaces the same Anthropic
deprecation (see the issue's follow-up comment); leaving that to a
separate PR keeps this change focused on the two configs the bug
report names.

The backup ``litellm/model_prices_and_context_window_backup.json``
absorbs upstream drift from earlier unrelated merges so the
``ci_cd/check_files_match.py`` byte-identity check passes — same
constraint that hit #26246.

Tests:

* New parametrized unit tests assert ``temperature`` / ``top_p`` are
  filtered out of ``AnthropicConfig.get_supported_openai_params`` for
  ``claude-opus-4-7``, the dated variant
  ``claude-opus-4-7-20260416``, and the vendor-prefixed
  ``anthropic/claude-opus-4-7``.
* Family-fallback test covers an unreleased dated snapshot not in the
  registry.
* Regression tests pin Sonnet 4.6 (both dated and alias), Haiku 4.5,
  Sonnet 3.5, Sonnet 3.7, and Opus 4.6 to still advertise both
  sampling params.
* ``map_openai_params`` test confirms explicit ``temperature=0.3,
  top_p=0.9`` does not reach ``optional_params`` for Opus 4.7 but
  does for Opus 4.6.
* End-to-end-shape test reproduces the issue: ``drop_params=True`` +
  ``temperature=0.1`` + ``transform_request`` no longer leaks
  ``temperature`` into the Anthropic request body.
* Bedrock Converse mirror suite covers all four region variants and
  pins Sonnet 4.6 / Haiku 4.5 / 3.5-sonnet on Bedrock as regressions.

Existing Anthropic + Bedrock test suites stay green
(``pytest tests/test_litellm/llms/anthropic
tests/test_litellm/llms/bedrock/chat`` — 976 passed locally).

Fixes #26444
2026-05-16 23:56:16 -07:00
..
agent_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
audio_tests test(vcr): classify cache verdicts, detect live calls, surface cost leaks 2026-05-13 00:31:47 +00:00
basic_proxy_startup_tests
batches_tests chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
benchmarks
code_coverage_tests feat: add componentized proxy deployment with gateway, backend, ui, and migrations (#27557) 2026-05-16 09:25:17 -07:00
documentation_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
enterprise chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
guardrails_tests chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
image_gen_tests Merge pull request #27795 from BerriAI/litellm_vcr-cache-observability-and-fixes-c5bc 2026-05-14 13:51:16 -07:00
litellm Add new chat model metadata (#27313) 2026-05-06 15:15:21 -07:00
litellm-proxy-extras style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
litellm_core_utils Merge branch 'litellm_internal_staging' into litellm_staging_03_22_2026 2026-04-20 19:56:00 +05:30
litellm_utils_tests chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
llm_responses_api_testing chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
llm_translation Merge branch 'litellm_internal_staging' into litellm_grid-v4-e2e-tests-cZRwz 2026-05-16 16:19:38 +00:00
load_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
local_testing test(ci): skip Fireworks tests on 404 + Gemini image-size test on 429 2026-05-16 07:47:25 +00:00
logging_callback_tests chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
mcp_tests feat: litellm shin agent oss staging 05 10 2026 (#27631) 2026-05-11 20:31:43 -07:00
multi_instance_e2e_tests
ocr_tests test(vcr): classify cache verdicts, detect live calls, surface cost leaks 2026-05-13 00:31:47 +00:00
old_proxy_tests/tests
openai_endpoints_tests chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
otel_tests chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
pass_through_tests chore(deps): refresh dependency locks 2026-05-04 11:36:18 -07:00
pass_through_unit_tests chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
proxy_admin_ui_tests chore(deps): refresh dependency locks 2026-05-04 11:36:18 -07:00
proxy_e2e_anthropic_messages_tests chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
proxy_security_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
proxy_unit_tests fix(managed_batches): convert raw output_file_id to managed ID in CheckBatchCost poller (#27984) 2026-05-15 04:41:38 -07:00
router_unit_tests chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
scim_tests
search_tests test(vcr): classify cache verdicts, detect live calls, surface cost leaks 2026-05-13 00:31:47 +00:00
spend_tracking_tests chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
store_model_in_db_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_litellm fix(anthropic, bedrock): drop temperature/top_p for Claude Opus 4.7 2026-05-16 23:56:16 -07:00
unified_google_tests chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
vector_store_tests fix: drop milvus dbName and partitionNames from MILVUS_OPTIONAL_PARAMS 2026-04-30 11:51:32 -07:00
windows_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
__init__.py
_flush_vcr_cache.py tests(vcr): isolate cassette redis to CASSETTE_REDIS_URL 2026-05-01 12:32:59 -07:00
_vcr_conftest_common.py fix(vcr): aggregate worker stats on the controller so the session summary actually renders under xdist 2026-05-13 07:24:32 +00:00
_vcr_redis_persister.py test: add 24hr Redis-backed VCR cache to additional test suites (#27159) 2026-05-05 15:13:31 -07:00
eval_swe_bench.py Prompt Compression - add it to the proxy (#25729) 2026-04-20 15:08:00 -07:00
gettysburg.wav
large_text.py
openai_batch_completions.jsonl
README.MD
test_budget_management.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_callbacks_on_proxy.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_config.py
test_debug_warning.py
test_default_encoding_non_root.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_end_users.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_entrypoint.py
test_fallbacks.py
test_gpt5_azure_temperature_support.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_health.py fix(tests): swap dall-e to gpt-image-1 after openai deprecation 2026-05-12 16:55:18 -07:00
test_keys.py fix(tests): swap dall-e to gpt-image-1 after openai deprecation 2026-05-12 16:55:18 -07:00
test_litellm_proxy_responses_config.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_logging.conf
test_models.py
test_new_vector_store_endpoints.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_openai_endpoints.py fix(tests): swap dall-e to gpt-image-1 after openai deprecation 2026-05-12 16:55:18 -07:00
test_organizations.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_otel_thread_leak.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_passthrough_endpoints.py
test_presidio_latency.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_proxy_server_non_root.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_ratelimit.py chore(ci): modernize model references in tests and configs (#27856) 2026-05-15 15:44:28 -07:00
test_resource_cleanup.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_service_logger_otel.py
test_spend_logs.py
test_team.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_team_logging.py
test_team_members.py
test_users.py Fix: tag budget reset must drop stale management-cache entry (#27568) 2026-05-10 00:18:55 +00:00

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.