@@ -592,18 +592,25 @@ def test_provider_event_handler_exception_does_not_stop_subsequent_handlers():
592592 provider = NoOpProvider ()
593593 set_provider (provider )
594594
595- spy = MagicMock ()
596- handler_called = threading .Event ()
595+ raising_handler_called = threading . Event ()
596+ recording_handler_called = threading .Event ()
597597
598598 raising_handler = MagicMock (side_effect = RuntimeError ("handler failed" ))
599+ recording_handler = MagicMock ()
600+
601+ def raising_handler_wrap (details ):
602+ try :
603+ raising_handler (details )
604+ finally :
605+ raising_handler_called .set ()
599606
600- def recording_handler (details ):
601- spy . provider_error (details )
602- handler_called .set ()
607+ def recording_handler_wrap (details ):
608+ recording_handler (details )
609+ recording_handler_called .set ()
603610
604611 client = get_client ()
605- client .add_handler (ProviderEvent .PROVIDER_ERROR , raising_handler )
606- client .add_handler (ProviderEvent .PROVIDER_ERROR , recording_handler )
612+ client .add_handler (ProviderEvent .PROVIDER_ERROR , raising_handler_wrap )
613+ client .add_handler (ProviderEvent .PROVIDER_ERROR , recording_handler_wrap )
607614
608615 details = ProviderEventDetails (error_code = ErrorCode .GENERAL , message = "some_error" )
609616 expected_details = EventDetails .from_provider_event_details (
@@ -614,9 +621,10 @@ def recording_handler(details):
614621 provider .emit_provider_error (details )
615622
616623 # Then
617- assert handler_called .wait (timeout = 1 )
624+ assert raising_handler_called .wait (timeout = 1 )
625+ assert recording_handler_called .wait (timeout = 1 )
618626 raising_handler .assert_called_once_with (expected_details )
619- spy . provider_error .assert_called_once_with (expected_details )
627+ recording_handler .assert_called_once_with (expected_details )
620628
621629
622630def test_provider_event_handlers_do_not_block_emitter ():
0 commit comments