diff --git a/tests/basic/test_reasoning.py b/tests/basic/test_reasoning.py index 07d021c95..86e01952c 100644 --- a/tests/basic/test_reasoning.py +++ b/tests/basic/test_reasoning.py @@ -128,13 +128,22 @@ class TestReasoning(unittest.TestCase): messages = [{"role": "user", "content": "test prompt"}] list(coder.send(messages)) - # Verify mdstream.update was called + # Verify mdstream.update was called multiple times mock_mdstream.update.assert_called() - - # Check the arguments of the final call to update - final_call = mock_mdstream.update.call_args_list[-1] - self.assertTrue(final_call[1]["final"]) - final_text = final_call[0][0] + + # Explicitly get all calls to update + update_calls = mock_mdstream.update.call_args_list + + # There should be at least two calls - one for streaming and one final + self.assertGreaterEqual(len(update_calls), 2, + "Should have at least two calls to update (streaming + final)") + + # Check that at least one call has final=True (should be the last one) + has_final_true = any(call[1].get('final', False) for call in update_calls) + self.assertTrue(has_final_true, "At least one update call should have final=True") + + # Get the text from the last update call + final_text = update_calls[-1][0][0] # The final text should include both reasoning and main content with proper formatting self.assertIn("> Thinking ...", final_text)