@@ -272,29 +272,27 @@ async def test_run_worker_generator_handler_exception(
272272 '''
273273 Test run_worker with generator handler.
274274
275- Args:
276- mock_stream_result (_type_): _description_
277- mock_run_job_generator (_type_): _description_
278- mock_run_job (_type_): _description_
279- mock_get_job (_type_): _description_
275+ This test verifies that:
276+ - `stream_result` is called exactly once before an exception occurs.
277+ - `run_job` is never called since `handler` is a generator function.
278+ - An error is correctly reported back via `send_result`.
280279 '''
281- # Define the mock behaviors
282- mock_get_job .return_value = {
283- "id" : "generator-123-exception" , "input" : {"number" : 1 }}
280+ RunPodLogger ().set_level ("DEBUG" )
284281
285- # Test generator handler
286- generator_config = {
287- "handler" : generator_handler_exception , "refresh_worker" : True }
282+ # Setup: Mock `get_job` to return a predefined job.
283+ mock_get_job .return_value = {"id" : "generator-123-exception" , "input" : {"number" : 1 }}
288284
289- RunPodLogger ().set_level ("DEBUG" )
290- runpod .serverless .start (generator_config )
285+ runpod .serverless .start ({
286+ "handler" : generator_handler_exception ,
287+ "refresh_worker" : True
288+ })
291289
292- assert mock_stream_result .call_count == 1
293- assert not mock_run_job .called
290+ assert mock_stream_result .call_count == 1 , "Expected `stream_result` to be called exactly once."
291+ assert not mock_run_job .called , "`run_job` should not be called for generator-based handlers."
294292
295293 # Since return_aggregate_stream is NOT activated, we should not submit any outputs.
296294 _ , args , _ = mock_send_result .mock_calls [0 ]
297- assert 'error' in args [1 ]
295+ assert 'error' in args [1 ], "Expected the error to be reported in the results."
298296
299297 @patch ("runpod.serverless.modules.rp_scale.get_job" )
300298 @patch ("runpod.serverless.worker.run_job" )
0 commit comments