@@ -300,9 +300,6 @@ def test_format_ignore_eos(self, valid_instances):
300300 10 ,
301301 5 ,
302302 ),
303- ({"choices" : [{"text" : "" }], "usage" : {}}, "" , None , None ),
304- ({"choices" : [], "usage" : {}}, "" , None , None ),
305- ({}, "" , None , None ),
306303 ],
307304 )
308305 def test_non_streaming (
@@ -363,7 +360,6 @@ def test_non_streaming(
363360 None ,
364361 None ,
365362 ),
366- (["" , "data: [DONE]" ], "" , None , None ),
367363 ],
368364 )
369365 def test_streaming (
@@ -397,6 +393,47 @@ def test_streaming(
397393 assert response .output_metrics .text_words == len (expected_text .split ())
398394 assert response .output_metrics .text_characters == len (expected_text )
399395
396+ @pytest .mark .regression
397+ @pytest .mark .parametrize (
398+ "response" ,
399+ [
400+ {"choices" : [{"text" : "" }], "usage" : {}},
401+ {"choices" : [], "usage" : {}},
402+ {},
403+ ],
404+ )
405+ def test_non_streaming_raises_for_unusable_terminal_payload (
406+ self , valid_instances , generation_request , response
407+ ):
408+ """Test unusable non-streaming text response raises.
409+
410+ ### WRITTEN BY AI ###
411+ """
412+ instance = valid_instances
413+ arguments = instance .format (generation_request )
414+
415+ with pytest .raises (ValueError , match = "UNUSABLE_BACKEND_RESPONSE" ):
416+ instance .compile_non_streaming (generation_request , arguments , response )
417+
418+ @pytest .mark .regression
419+ def test_streaming_raises_for_unusable_terminal_payload (
420+ self , valid_instances , generation_request
421+ ):
422+ """Test unusable streaming text response raises.
423+
424+ ### WRITTEN BY AI ###
425+ """
426+ instance = valid_instances
427+ arguments = instance .format (generation_request )
428+
429+ for line in ["" , "data: [DONE]" ]:
430+ result = instance .add_streaming_line (line )
431+ if result is None :
432+ break
433+
434+ with pytest .raises (ValueError , match = "UNUSABLE_BACKEND_RESPONSE" ):
435+ instance .compile_streaming (generation_request , arguments )
436+
400437 @pytest .mark .smoke
401438 @pytest .mark .parametrize (
402439 ("line" , "expected_output" ),
@@ -818,18 +855,6 @@ def test_format_multimodal(self, valid_instances):
818855 10 ,
819856 5 ,
820857 ),
821- (
822- {"choices" : [{"message" : {"content" : "" }}], "usage" : {}},
823- "" ,
824- None ,
825- None ,
826- ),
827- (
828- {"choices" : [], "usage" : {}},
829- "" ,
830- None ,
831- None ,
832- ),
833858 ],
834859 )
835860 def test_non_streaming (
@@ -883,12 +908,6 @@ def test_non_streaming(
883908 None ,
884909 None ,
885910 ),
886- (
887- ["" , "data: [DONE]" ],
888- "" ,
889- None ,
890- None ,
891- ),
892911 ],
893912 )
894913 def test_streaming (
@@ -920,6 +939,46 @@ def test_streaming(
920939 assert response .input_metrics .text_tokens == expected_input_tokens
921940 assert response .output_metrics .text_tokens == expected_output_tokens
922941
942+ @pytest .mark .regression
943+ @pytest .mark .parametrize (
944+ "response" ,
945+ [
946+ {"choices" : [{"message" : {"content" : "" }}], "usage" : {}},
947+ {"choices" : [], "usage" : {}},
948+ ],
949+ )
950+ def test_non_streaming_raises_for_unusable_terminal_payload (
951+ self , valid_instances , generation_request , response
952+ ):
953+ """Test unusable non-streaming chat response raises.
954+
955+ ### WRITTEN BY AI ###
956+ """
957+ instance = valid_instances
958+ arguments = instance .format (generation_request )
959+
960+ with pytest .raises (ValueError , match = "UNUSABLE_BACKEND_RESPONSE" ):
961+ instance .compile_non_streaming (generation_request , arguments , response )
962+
963+ @pytest .mark .regression
964+ def test_streaming_raises_for_unusable_terminal_payload (
965+ self , valid_instances , generation_request
966+ ):
967+ """Test unusable streaming chat response raises.
968+
969+ ### WRITTEN BY AI ###
970+ """
971+ instance = valid_instances
972+ arguments = instance .format (generation_request )
973+
974+ for line in ["" , "data: [DONE]" ]:
975+ result = instance .add_streaming_line (line )
976+ if result is None :
977+ break
978+
979+ with pytest .raises (ValueError , match = "UNUSABLE_BACKEND_RESPONSE" ):
980+ instance .compile_streaming (generation_request , arguments )
981+
923982
924983class TestAudioRequestHandler :
925984 """Test cases for AudioRequestHandler.
0 commit comments