From 408b717cb9fee5551cf27a2ba45f17d308cb845a Mon Sep 17 00:00:00 2001 From: Sameer Kankute Date: Fri, 13 Mar 2026 23:43:03 +0530 Subject: [PATCH] Fix gpt 5 transformation tests --- .../llms/openai/test_gpt5_transformation.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/test_litellm/llms/openai/test_gpt5_transformation.py b/tests/test_litellm/llms/openai/test_gpt5_transformation.py index 8eeca8c1d7f..47ae3c44c9e 100644 --- a/tests/test_litellm/llms/openai/test_gpt5_transformation.py +++ b/tests/test_litellm/llms/openai/test_gpt5_transformation.py @@ -410,8 +410,12 @@ def test_gpt5_normalizes_reasoning_effort_dict_with_summary_from_optional_params assert params["reasoning_effort"] == "medium" -def test_gpt5_4_drops_reasoning_effort_when_tools_present(config: OpenAIConfig): - """gpt-5.4: function calls not supported with reasoning_effort != 'none'. Drop reasoning_effort.""" +def test_gpt5_4_passes_through_reasoning_effort_with_tools(config: OpenAIConfig): + """gpt-5.4 with tools + reasoning_effort: map_openai_params passes through both. + + Routing to Responses API (which supports tools + reasoning) happens at completion() + level (responses_api_bridge_check). See test_responses_api_bridge_check_gpt_5_4_tools_plus_reasoning_routes_to_responses. + """ tools = [{"type": "function", "function": {"name": "test", "description": "test"}}] params = config.map_openai_params( non_default_params={"reasoning_effort": "high", "tools": tools}, @@ -419,7 +423,7 @@ def test_gpt5_4_drops_reasoning_effort_when_tools_present(config: OpenAIConfig): model="gpt-5.4", drop_params=False, ) - assert "reasoning_effort" not in params + assert params["reasoning_effort"] == "high" assert params["tools"] == tools