@@ -63,31 +63,46 @@ def test_stream(openai_client, model):
63
63
mock_tool_call_1_part_1 = unittest .mock .Mock (index = 0 )
64
64
mock_tool_call_2_part_1 = unittest .mock .Mock (index = 1 )
65
65
mock_delta_1 = unittest .mock .Mock (
66
- content = "I'll calculate" , tool_calls = [mock_tool_call_1_part_1 , mock_tool_call_2_part_1 ]
66
+ reasoning_content = "<think>" ,
67
+ content = None ,
68
+ tool_calls = None ,
69
+ )
70
+ mock_delta_2 = unittest .mock .Mock (
71
+ reasoning_content = "\n Okey, the user just</think>" ,
72
+ content = None ,
73
+ tool_calls = None ,
74
+ )
75
+ mock_delta_3 = unittest .mock .Mock (
76
+ content = "I'll calculate" , tool_calls = [mock_tool_call_1_part_1 , mock_tool_call_2_part_1 ], reasoning_content = None
67
77
)
68
78
69
79
mock_tool_call_1_part_2 = unittest .mock .Mock (index = 0 )
70
80
mock_tool_call_2_part_2 = unittest .mock .Mock (index = 1 )
71
- mock_delta_2 = unittest .mock .Mock (
72
- content = "that for you" , tool_calls = [mock_tool_call_1_part_2 , mock_tool_call_2_part_2 ]
81
+ mock_delta_4 = unittest .mock .Mock (
82
+ content = "that for you" , tool_calls = [mock_tool_call_1_part_2 , mock_tool_call_2_part_2 ], reasoning_content = None
73
83
)
74
84
75
- mock_delta_3 = unittest .mock .Mock (content = "" , tool_calls = None )
85
+ mock_delta_5 = unittest .mock .Mock (content = "" , tool_calls = None , reasoning_content = None )
76
86
77
87
mock_event_1 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = None , delta = mock_delta_1 )])
78
88
mock_event_2 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = None , delta = mock_delta_2 )])
79
- mock_event_3 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = "tool_calls" , delta = mock_delta_3 )])
80
- mock_event_4 = unittest .mock .Mock ()
89
+ mock_event_3 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = None , delta = mock_delta_3 )])
90
+ mock_event_4 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = None , delta = mock_delta_4 )])
91
+ mock_event_5 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = "tool_calls" , delta = mock_delta_5 )])
92
+ mock_event_6 = unittest .mock .Mock ()
81
93
82
- openai_client .chat .completions .create .return_value = iter ([mock_event_1 , mock_event_2 , mock_event_3 , mock_event_4 ])
94
+ openai_client .chat .completions .create .return_value = iter (
95
+ [mock_event_1 , mock_event_2 , mock_event_3 , mock_event_4 , mock_event_5 , mock_event_6 ]
96
+ )
83
97
84
98
request = {"model" : "m1" , "messages" : [{"role" : "user" , "content" : [{"type" : "text" , "text" : "calculate 2+2" }]}]}
85
99
response = model .stream (request )
86
-
87
100
tru_events = list (response )
88
101
exp_events = [
89
102
{"chunk_type" : "message_start" },
90
103
{"chunk_type" : "content_start" , "data_type" : "text" },
104
+ {"chunk_type" : "content_delta" , "data_type" : "reasoning_content" , "data" : "<think>" },
105
+ {"chunk_type" : "content_delta" , "data_type" : "reasoning_content" , "data" : "\n Okey, the user just</think>" },
91
106
{"chunk_type" : "content_delta" , "data_type" : "text" , "data" : "I'll calculate" },
92
107
{"chunk_type" : "content_delta" , "data_type" : "text" , "data" : "that for you" },
93
108
{"chunk_type" : "content_stop" , "data_type" : "text" },
@@ -100,15 +115,15 @@ def test_stream(openai_client, model):
100
115
{"chunk_type" : "content_delta" , "data_type" : "tool" , "data" : mock_tool_call_2_part_2 },
101
116
{"chunk_type" : "content_stop" , "data_type" : "tool" },
102
117
{"chunk_type" : "message_stop" , "data" : "tool_calls" },
103
- {"chunk_type" : "metadata" , "data" : mock_event_4 .usage },
118
+ {"chunk_type" : "metadata" , "data" : mock_event_6 .usage },
104
119
]
105
120
106
121
assert tru_events == exp_events
107
122
openai_client .chat .completions .create .assert_called_once_with (** request )
108
123
109
124
110
125
def test_stream_empty (openai_client , model ):
111
- mock_delta = unittest .mock .Mock (content = None , tool_calls = None )
126
+ mock_delta = unittest .mock .Mock (content = None , tool_calls = None , reasoning_content = None )
112
127
mock_usage = unittest .mock .Mock (prompt_tokens = 0 , completion_tokens = 0 , total_tokens = 0 )
113
128
114
129
mock_event_1 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = None , delta = mock_delta )])
0 commit comments