From f173bbda2e3435ee45c4a92a516181e1fa4dbf7b Mon Sep 17 00:00:00 2001 From: Darsh Joshi Date: Fri, 23 Oct 2026 10:49:53 -0400 Subject: [PATCH] test(deepseek): pin tool result image carrier placement before a following turn --- .../chat/test_deepseek_chat_transformation.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/unit/llms/deepseek/chat/test_deepseek_chat_transformation.py b/tests/unit/llms/deepseek/chat/test_deepseek_chat_transformation.py index 0cfd7e4ae6a..b9cbcad61e7 100644 --- a/tests/unit/llms/deepseek/chat/test_deepseek_chat_transformation.py +++ b/tests/unit/llms/deepseek/chat/test_deepseek_chat_transformation.py @@ -182,6 +182,20 @@ class TestDeepSeekVisionMultimodalContent: assert image_carrier["role"] == "user" assert image_block in image_carrier["content"] + def test_tool_result_image_carrier_placed_directly_after_tool_result(self): + for next_message in ( + {"role": "user", "content": "so what do you see?"}, + {"role": "assistant", "content": "I see an image."}, + ): + tool_message = {**self._image_message(role="tool"), "tool_call_id": "call_1"} + image_block = tool_message["content"][1] + + result = self.config._transform_messages([tool_message, next_message], model=self.VISION_MODEL) + + assert [m["role"] for m in result] == ["tool", "user", next_message["role"]] + assert image_block in result[1]["content"] + assert result[2] == next_message + def test_audio_block_collapsed_even_on_vision_model(self): messages = [ {