@@ -73,31 +73,45 @@ def test_stream(openai_client, model):
73
73
mock_tool_call_1_part_1 = unittest .mock .Mock (index = 0 )
74
74
mock_tool_call_2_part_1 = unittest .mock .Mock (index = 1 )
75
75
mock_delta_1 = unittest .mock .Mock (
76
- content = "I'll calculate" , tool_calls = [mock_tool_call_1_part_1 , mock_tool_call_2_part_1 ]
76
+ reasoning_content = "" ,
77
+ content = None ,
78
+ tool_calls = None ,
79
+ )
80
+ mock_delta_2 = unittest .mock .Mock (
81
+ reasoning_content = "\n I'm thinking" ,
82
+ content = None ,
83
+ tool_calls = None ,
84
+ )
85
+ mock_delta_3 = unittest .mock .Mock (
86
+ content = "I'll calculate" , tool_calls = [mock_tool_call_1_part_1 , mock_tool_call_2_part_1 ], reasoning_content = None
77
87
)
78
88
79
89
mock_tool_call_1_part_2 = unittest .mock .Mock (index = 0 )
80
90
mock_tool_call_2_part_2 = unittest .mock .Mock (index = 1 )
81
- mock_delta_2 = unittest .mock .Mock (
82
- content = "that for you" , tool_calls = [mock_tool_call_1_part_2 , mock_tool_call_2_part_2 ]
91
+ mock_delta_4 = unittest .mock .Mock (
92
+ content = "that for you" , tool_calls = [mock_tool_call_1_part_2 , mock_tool_call_2_part_2 ], reasoning_content = None
83
93
)
84
94
85
- mock_delta_3 = unittest .mock .Mock (content = "" , tool_calls = None )
95
+ mock_delta_5 = unittest .mock .Mock (content = "" , tool_calls = None , reasoning_content = None )
86
96
87
97
mock_event_1 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = None , delta = mock_delta_1 )])
88
98
mock_event_2 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = None , delta = mock_delta_2 )])
89
- mock_event_3 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = "tool_calls" , delta = mock_delta_3 )])
90
- mock_event_4 = unittest .mock .Mock ()
99
+ mock_event_3 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = None , delta = mock_delta_3 )])
100
+ mock_event_4 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = None , delta = mock_delta_4 )])
101
+ mock_event_5 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = "tool_calls" , delta = mock_delta_5 )])
102
+ mock_event_6 = unittest .mock .Mock ()
91
103
92
- openai_client .chat .completions .create .return_value = iter ([mock_event_1 , mock_event_2 , mock_event_3 , mock_event_4 ])
104
+ openai_client .chat .completions .create .return_value = iter (
105
+ [mock_event_1 , mock_event_2 , mock_event_3 , mock_event_4 , mock_event_5 , mock_event_6 ]
106
+ )
93
107
94
108
request = {"model" : "m1" , "messages" : [{"role" : "user" , "content" : [{"type" : "text" , "text" : "calculate 2+2" }]}]}
95
109
response = model .stream (request )
96
-
97
110
tru_events = list (response )
98
111
exp_events = [
99
112
{"chunk_type" : "message_start" },
100
113
{"chunk_type" : "content_start" , "data_type" : "text" },
114
+ {"chunk_type" : "content_delta" , "data_type" : "reasoning_content" , "data" : "\n I'm thinking" },
101
115
{"chunk_type" : "content_delta" , "data_type" : "text" , "data" : "I'll calculate" },
102
116
{"chunk_type" : "content_delta" , "data_type" : "text" , "data" : "that for you" },
103
117
{"chunk_type" : "content_stop" , "data_type" : "text" },
@@ -110,15 +124,15 @@ def test_stream(openai_client, model):
110
124
{"chunk_type" : "content_delta" , "data_type" : "tool" , "data" : mock_tool_call_2_part_2 },
111
125
{"chunk_type" : "content_stop" , "data_type" : "tool" },
112
126
{"chunk_type" : "message_stop" , "data" : "tool_calls" },
113
- {"chunk_type" : "metadata" , "data" : mock_event_4 .usage },
127
+ {"chunk_type" : "metadata" , "data" : mock_event_6 .usage },
114
128
]
115
129
116
130
assert tru_events == exp_events
117
131
openai_client .chat .completions .create .assert_called_once_with (** request )
118
132
119
133
120
134
def test_stream_empty (openai_client , model ):
121
- mock_delta = unittest .mock .Mock (content = None , tool_calls = None )
135
+ mock_delta = unittest .mock .Mock (content = None , tool_calls = None , reasoning_content = None )
122
136
mock_usage = unittest .mock .Mock (prompt_tokens = 0 , completion_tokens = 0 , total_tokens = 0 )
123
137
124
138
mock_event_1 = unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = None , delta = mock_delta )])
@@ -145,7 +159,7 @@ def test_stream_empty(openai_client, model):
145
159
146
160
147
161
def test_stream_with_empty_choices (openai_client , model ):
148
- mock_delta = unittest .mock .Mock (content = "content" , tool_calls = None )
162
+ mock_delta = unittest .mock .Mock (content = "content" , tool_calls = None , reasoning_content = None )
149
163
mock_usage = unittest .mock .Mock (prompt_tokens = 10 , completion_tokens = 20 , total_tokens = 30 )
150
164
151
165
# Event with no choices attribute
0 commit comments