@@ -451,9 +451,9 @@ async def test_stream(mistral_client, model, agenerator, alist, captured_warning
451451 delta = unittest .mock .Mock (content = "test stream" , tool_calls = None ),
452452 finish_reason = "end_turn" ,
453453 )
454- ]
454+ ],
455+ usage = mock_usage ,
455456 ),
456- usage = mock_usage ,
457457 )
458458
459459 mistral_client .chat .stream_async = unittest .mock .AsyncMock (return_value = agenerator ([mock_event ]))
@@ -476,6 +476,30 @@ async def test_stream(mistral_client, model, agenerator, alist, captured_warning
476476 assert len (captured_warnings ) == 0
477477
478478
479+ @pytest .mark .asyncio
480+ async def test_stream_no_usage (mistral_client , model , agenerator , alist ):
481+ mock_event = unittest .mock .Mock (
482+ data = unittest .mock .Mock (
483+ choices = [
484+ unittest .mock .Mock (
485+ delta = unittest .mock .Mock (content = "test stream" , tool_calls = None ),
486+ finish_reason = "end_turn" ,
487+ )
488+ ],
489+ usage = None ,
490+ ),
491+ )
492+
493+ mistral_client .chat .stream_async = unittest .mock .AsyncMock (return_value = agenerator ([mock_event ]))
494+
495+ messages = [{"role" : "user" , "content" : [{"text" : "test" }]}]
496+ response = model .stream (messages , None , None )
497+
498+ # Should complete without error and not yield a metadata chunk
499+ chunks = await alist (response )
500+ assert not any ("metadata" in c for c in chunks if isinstance (c , dict ))
501+
502+
479503@pytest .mark .asyncio
480504async def test_tool_choice_not_supported_warns (mistral_client , model , agenerator , alist , captured_warnings ):
481505 tool_choice = {"auto" : {}}
@@ -492,9 +516,9 @@ async def test_tool_choice_not_supported_warns(mistral_client, model, agenerator
492516 delta = unittest .mock .Mock (content = "test stream" , tool_calls = None ),
493517 finish_reason = "end_turn" ,
494518 )
495- ]
519+ ],
520+ usage = mock_usage ,
496521 ),
497- usage = mock_usage ,
498522 )
499523
500524 mistral_client .chat .stream_async = unittest .mock .AsyncMock (return_value = agenerator ([mock_event ]))
0 commit comments