8
8
import copy
9
9
import time
10
10
import json
11
+ import datetime
11
12
12
13
import engine .core .async_request_utilities as async_request_utilities
13
14
import engine .core .request_utilities as request_utilities
@@ -42,7 +43,8 @@ def __init__(self, rendered_data, parser, response="", producer_timing_delay=0,
42
43
43
44
class RenderedSequence (object ):
44
45
""" RenderedSequence class """
45
- def __init__ (self , sequence = None , valid = False , failure_info = None , final_request_response = None ):
46
+ def __init__ (self , sequence = None , valid = False , failure_info = None , final_request_response = None ,
47
+ response_datetime = None ):
46
48
""" Initializes RenderedSequence object
47
49
48
50
@param sequence: The sequence that was rendered
@@ -59,6 +61,7 @@ def __init__(self, sequence=None, valid=False, failure_info=None, final_request_
59
61
self .valid = valid
60
62
self .failure_info = failure_info
61
63
self .final_request_response = final_request_response
64
+ self .final_response_datetime = response_datetime
62
65
63
66
class Sequence (object ):
64
67
""" Implements basic sequence logic. """
@@ -413,7 +416,9 @@ def render(self, candidate_values_pool, lock, preprocessing=False, postprocessin
413
416
and not resource_error \
414
417
and response .has_valid_code ()
415
418
# register latest client/server interaction and add to the status codes list
416
- timestamp_micro = int (time .time ()* 10 ** 6 )
419
+ response_datetime = datetime .datetime .now (datetime .timezone .utc )
420
+ timestamp_micro = int (response_datetime .timestamp ()* 10 ** 6 )
421
+
417
422
self .status_codes .append (status_codes_monitor .RequestExecutionStatus (timestamp_micro ,
418
423
request .hex_definition ,
419
424
status_code ,
@@ -449,9 +454,11 @@ def render(self, candidate_values_pool, lock, preprocessing=False, postprocessin
449
454
if lock is not None :
450
455
lock .release ()
451
456
457
+ datetime_format = "%Y-%m-%d %H:%M:%S"
452
458
# return a rendered clone if response indicates a valid status code
453
459
if rendering_is_valid or Settings ().ignore_feedback :
454
- return RenderedSequence (duplicate , valid = True , final_request_response = response )
460
+ return RenderedSequence (duplicate , valid = True , final_request_response = response ,
461
+ response_datetime = response_datetime .strftime (datetime_format ))
455
462
else :
456
463
information = None
457
464
if response .has_valid_code ():
@@ -461,7 +468,9 @@ def render(self, candidate_values_pool, lock, preprocessing=False, postprocessin
461
468
information = FailureInformation .RESOURCE_CREATION
462
469
elif response .has_bug_code ():
463
470
information = FailureInformation .BUG
464
- return RenderedSequence (duplicate , valid = False , failure_info = information , final_request_response = response )
471
+ return RenderedSequence (duplicate , valid = False , failure_info = information ,
472
+ final_request_response = response ,
473
+ response_datetime = response_datetime .strftime (datetime_format ))
465
474
466
475
return RenderedSequence (None )
467
476
0 commit comments