@@ -789,3 +789,45 @@ def lambda_handler(event, context):
789789 self .mock_asm_start_response .assert_not_called ()
790790
791791 assert lambda_handler .span .get_tag ("http.status_code" ) == "200"
792+
793+
794+ @patch ("datadog_lambda.config.Config.exception_replay_enabled" , True )
795+ def test_exception_replay_enabled (monkeypatch ):
796+ importlib .reload (wrapper )
797+
798+ original_SpanExceptionHandler_enable = wrapper .SpanExceptionHandler .enable
799+ SpanExceptionHandler_enable_calls = []
800+
801+ def SpanExceptionHandler_enable (* args , ** kwargs ):
802+ SpanExceptionHandler_enable_calls .append ((args , kwargs ))
803+ return original_SpanExceptionHandler_enable (* args , ** kwargs )
804+
805+ original_SignalUploader_periodic = wrapper .SignalUploader .periodic
806+ SignalUploader_periodic_calls = []
807+
808+ def SignalUploader_periodic (* args , ** kwargs ):
809+ SignalUploader_periodic_calls .append ((args , kwargs ))
810+ return original_SignalUploader_periodic (* args , ** kwargs )
811+
812+ monkeypatch .setattr (
813+ "datadog_lambda.wrapper.SpanExceptionHandler.enable" ,
814+ SpanExceptionHandler_enable ,
815+ )
816+ monkeypatch .setattr (
817+ "datadog_lambda.wrapper.SignalUploader.periodic" , SignalUploader_periodic
818+ )
819+
820+ expected_response = {
821+ "statusCode" : 200 ,
822+ "body" : "This should be returned" ,
823+ }
824+
825+ @wrapper .datadog_lambda_wrapper
826+ def lambda_handler (event , context ):
827+ return expected_response
828+
829+ response = lambda_handler ({}, get_mock_context ())
830+
831+ assert response == expected_response
832+ assert len (SpanExceptionHandler_enable_calls ) == 1
833+ assert len (SignalUploader_periodic_calls ) == 1
0 commit comments