@@ -915,11 +915,13 @@ def test_log_error_standard_log_sink(self, mock_stdout):
915915
916916 def test_log_error_framed_log_sink (self ):
917917 with NamedTemporaryFile () as temp_file :
918+ before = int (time .time_ns () / 1000 )
918919 with bootstrap .FramedTelemetryLogSink (
919920 os .open (temp_file .name , os .O_CREAT | os .O_RDWR )
920921 ) as log_sink :
921922 err_to_log = bootstrap .make_error ("Error message" , "ErrorType" , None )
922923 bootstrap .log_error (err_to_log , log_sink )
924+ after = int (time .time_ns () / 1000 )
923925
924926 expected_logged_error = (
925927 "[ERROR] ErrorType: Error message\n Traceback (most recent call last):"
@@ -934,7 +936,11 @@ def test_log_error_framed_log_sink(self):
934936 length = int .from_bytes (content [4 :8 ], "big" )
935937 self .assertEqual (length , len (expected_logged_error .encode ("utf8" )))
936938
937- actual_message = content [8 :].decode ()
939+ timestamp = int .from_bytes (content [8 :16 ], "big" )
940+ self .assertTrue (before <= timestamp )
941+ self .assertTrue (timestamp <= after )
942+
943+ actual_message = content [16 :].decode ()
938944 self .assertEqual (actual_message , expected_logged_error )
939945
940946 @patch ("sys.stdout" , new_callable = StringIO )
@@ -952,13 +958,15 @@ def test_log_error_indentation_standard_log_sink(self, mock_stdout):
952958
953959 def test_log_error_indentation_framed_log_sink (self ):
954960 with NamedTemporaryFile () as temp_file :
961+ before = int (time .time_ns () / 1000 )
955962 with bootstrap .FramedTelemetryLogSink (
956963 os .open (temp_file .name , os .O_CREAT | os .O_RDWR )
957964 ) as log_sink :
958965 err_to_log = bootstrap .make_error (
959966 "Error message" , "ErrorType" , [" line1 " , " line2 " , " " ]
960967 )
961968 bootstrap .log_error (err_to_log , log_sink )
969+ after = int (time .time_ns () / 1000 )
962970
963971 expected_logged_error = (
964972 "[ERROR] ErrorType: Error message\n Traceback (most recent call last):"
@@ -974,7 +982,11 @@ def test_log_error_indentation_framed_log_sink(self):
974982 length = int .from_bytes (content [4 :8 ], "big" )
975983 self .assertEqual (length , len (expected_logged_error .encode ("utf8" )))
976984
977- actual_message = content [8 :].decode ()
985+ timestamp = int .from_bytes (content [8 :16 ], "big" )
986+ self .assertTrue (before <= timestamp )
987+ self .assertTrue (timestamp <= after )
988+
989+ actual_message = content [16 :].decode ()
978990 self .assertEqual (actual_message , expected_logged_error )
979991
980992 @patch ("sys.stdout" , new_callable = StringIO )
@@ -989,13 +1001,15 @@ def test_log_error_empty_stacktrace_line_standard_log_sink(self, mock_stdout):
9891001
9901002 def test_log_error_empty_stacktrace_line_framed_log_sink (self ):
9911003 with NamedTemporaryFile () as temp_file :
1004+ before = int (time .time_ns () / 1000 )
9921005 with bootstrap .FramedTelemetryLogSink (
9931006 os .open (temp_file .name , os .O_CREAT | os .O_RDWR )
9941007 ) as log_sink :
9951008 err_to_log = bootstrap .make_error (
9961009 "Error message" , "ErrorType" , ["line1" , "" , "line2" ]
9971010 )
9981011 bootstrap .log_error (err_to_log , log_sink )
1012+ after = int (time .time_ns () / 1000 )
9991013
10001014 expected_logged_error = (
10011015 "[ERROR] ErrorType: Error message\n Traceback "
@@ -1011,12 +1025,17 @@ def test_log_error_empty_stacktrace_line_framed_log_sink(self):
10111025 length = int .from_bytes (content [4 :8 ], "big" )
10121026 self .assertEqual (length , len (expected_logged_error ))
10131027
1014- actual_message = content [8 :].decode ()
1028+ timestamp = int .from_bytes (content [8 :16 ], "big" )
1029+ self .assertTrue (before <= timestamp )
1030+ self .assertTrue (timestamp <= after )
1031+
1032+ actual_message = content [16 :].decode ()
10151033 self .assertEqual (actual_message , expected_logged_error )
10161034
10171035 # Just to ensure we are not logging the requestId from error response, just sending in the response
10181036 def test_log_error_invokeId_line_framed_log_sink (self ):
10191037 with NamedTemporaryFile () as temp_file :
1038+ before = int (time .time_ns () / 1000 )
10201039 with bootstrap .FramedTelemetryLogSink (
10211040 os .open (temp_file .name , os .O_CREAT | os .O_RDWR )
10221041 ) as log_sink :
@@ -1027,6 +1046,7 @@ def test_log_error_invokeId_line_framed_log_sink(self):
10271046 "testrequestId" ,
10281047 )
10291048 bootstrap .log_error (err_to_log , log_sink )
1049+ after = int (time .time_ns () / 1000 )
10301050
10311051 expected_logged_error = (
10321052 "[ERROR] ErrorType: Error message\n Traceback "
@@ -1042,7 +1062,11 @@ def test_log_error_invokeId_line_framed_log_sink(self):
10421062 length = int .from_bytes (content [4 :8 ], "big" )
10431063 self .assertEqual (length , len (expected_logged_error ))
10441064
1045- actual_message = content [8 :].decode ()
1065+ timestamp = int .from_bytes (content [8 :16 ], "big" )
1066+ self .assertTrue (before <= timestamp )
1067+ self .assertTrue (timestamp <= after )
1068+
1069+ actual_message = content [16 :].decode ()
10461070 self .assertEqual (actual_message , expected_logged_error )
10471071
10481072
0 commit comments