99
1010@pytest .fixture  
1111def  openai_client_cls ():
12-     with  unittest .mock .patch .object (strands .models .openai .openai , "OpenAI " ) as  mock_client_cls :
12+     with  unittest .mock .patch .object (strands .models .openai .openai , "AsyncOpenAI " ) as  mock_client_cls :
1313        yield  mock_client_cls 
1414
1515
@@ -70,7 +70,7 @@ def test_update_config(model, model_id):
7070
7171
7272@pytest .mark .asyncio  
73- async  def  test_stream (openai_client , model , alist ):
73+ async  def  test_stream (openai_client , model , agenerator ,  alist ):
7474    mock_tool_call_1_part_1  =  unittest .mock .Mock (index = 0 )
7575    mock_tool_call_2_part_1  =  unittest .mock .Mock (index = 1 )
7676    mock_delta_1  =  unittest .mock .Mock (
@@ -102,8 +102,8 @@ async def test_stream(openai_client, model, alist):
102102    mock_event_5  =  unittest .mock .Mock (choices = [unittest .mock .Mock (finish_reason = "tool_calls" , delta = mock_delta_5 )])
103103    mock_event_6  =  unittest .mock .Mock ()
104104
105-     openai_client .chat .completions .create . return_value  =  iter (
106-         [mock_event_1 , mock_event_2 , mock_event_3 , mock_event_4 , mock_event_5 , mock_event_6 ]
105+     openai_client .chat .completions .create  =  unittest . mock . AsyncMock (
106+         return_value = agenerator ( [mock_event_1 , mock_event_2 , mock_event_3 , mock_event_4 , mock_event_5 , mock_event_6 ]) 
107107    )
108108
109109    request  =  {"model" : "m1" , "messages" : [{"role" : "user" , "content" : [{"type" : "text" , "text" : "calculate 2+2" }]}]}
@@ -133,7 +133,7 @@ async def test_stream(openai_client, model, alist):
133133
134134
135135@pytest .mark .asyncio  
136- async  def  test_stream_empty (openai_client , model , alist ):
136+ async  def  test_stream_empty (openai_client , model , agenerator ,  alist ):
137137    mock_delta  =  unittest .mock .Mock (content = None , tool_calls = None , reasoning_content = None )
138138    mock_usage  =  unittest .mock .Mock (prompt_tokens = 0 , completion_tokens = 0 , total_tokens = 0 )
139139
@@ -142,7 +142,9 @@ async def test_stream_empty(openai_client, model, alist):
142142    mock_event_3  =  unittest .mock .Mock ()
143143    mock_event_4  =  unittest .mock .Mock (usage = mock_usage )
144144
145-     openai_client .chat .completions .create .return_value  =  iter ([mock_event_1 , mock_event_2 , mock_event_3 , mock_event_4 ])
145+     openai_client .chat .completions .create  =  unittest .mock .AsyncMock (
146+         return_value = agenerator ([mock_event_1 , mock_event_2 , mock_event_3 , mock_event_4 ]),
147+     )
146148
147149    request  =  {"model" : "m1" , "messages" : [{"role" : "user" , "content" : []}]}
148150    response  =  model .stream (request )
@@ -161,7 +163,7 @@ async def test_stream_empty(openai_client, model, alist):
161163
162164
163165@pytest .mark .asyncio  
164- async  def  test_stream_with_empty_choices (openai_client , model , alist ):
166+ async  def  test_stream_with_empty_choices (openai_client , model , agenerator ,  alist ):
165167    mock_delta  =  unittest .mock .Mock (content = "content" , tool_calls = None , reasoning_content = None )
166168    mock_usage  =  unittest .mock .Mock (prompt_tokens = 10 , completion_tokens = 20 , total_tokens = 30 )
167169
@@ -180,8 +182,8 @@ async def test_stream_with_empty_choices(openai_client, model, alist):
180182    # Final event with usage info 
181183    mock_event_5  =  unittest .mock .Mock (usage = mock_usage )
182184
183-     openai_client .chat .completions .create . return_value  =  iter (
184-         [mock_event_1 , mock_event_2 , mock_event_3 , mock_event_4 , mock_event_5 ]
185+     openai_client .chat .completions .create  =  unittest . mock . AsyncMock (
186+         return_value = agenerator ( [mock_event_1 , mock_event_2 , mock_event_3 , mock_event_4 , mock_event_5 ]) 
185187    )
186188
187189    request  =  {"model" : "m1" , "messages" : [{"role" : "user" , "content" : ["test" ]}]}
@@ -212,7 +214,7 @@ async def test_structured_output(openai_client, model, test_output_model_cls, al
212214    mock_response  =  unittest .mock .Mock ()
213215    mock_response .choices  =  [mock_choice ]
214216
215-     openai_client .beta .chat .completions .parse . return_value  =  mock_response 
217+     openai_client .beta .chat .completions .parse  =  unittest . mock . AsyncMock ( return_value = mock_response ) 
216218
217219    stream  =  model .structured_output (test_output_model_cls , messages )
218220    events  =  await  alist (stream )
0 commit comments