@@ -6081,7 +6081,16 @@ def test_rollover(self):
6081
6081
self .assertTrue (found , msg = msg )
6082
6082
6083
6083
def test_rollover_at_midnight (self ):
6084
- atTime = datetime .datetime .now ().time ()
6084
+ os_helper .unlink (self .fn )
6085
+ now = datetime .datetime .now ()
6086
+ atTime = now .time ()
6087
+ if not 0.1 < atTime .microsecond / 1e6 < 0.9 :
6088
+ # The test requires all records to be emitted within
6089
+ # the range of the same whole second.
6090
+ time .sleep ((0.1 - atTime .microsecond / 1e6 ) % 1.0 )
6091
+ now = datetime .datetime .now ()
6092
+ atTime = now .time ()
6093
+ atTime = atTime .replace (microsecond = 0 )
6085
6094
fmt = logging .Formatter ('%(asctime)s %(message)s' )
6086
6095
for i in range (3 ):
6087
6096
fh = logging .handlers .TimedRotatingFileHandler (
@@ -6095,15 +6104,15 @@ def test_rollover_at_midnight(self):
6095
6104
for i , line in enumerate (f ):
6096
6105
self .assertIn (f'testing1 { i } ' , line )
6097
6106
6098
- os .utime (self .fn , (time . time () - 1 ,)* 2 )
6107
+ os .utime (self .fn , (now . timestamp () - 1 ,)* 2 )
6099
6108
for i in range (2 ):
6100
6109
fh = logging .handlers .TimedRotatingFileHandler (
6101
6110
self .fn , encoding = "utf-8" , when = 'MIDNIGHT' , atTime = atTime )
6102
6111
fh .setFormatter (fmt )
6103
6112
r2 = logging .makeLogRecord ({'msg' : f'testing2 { i } ' })
6104
6113
fh .emit (r2 )
6105
6114
fh .close ()
6106
- rolloverDate = datetime . datetime . now () - datetime .timedelta (days = 1 )
6115
+ rolloverDate = now - datetime .timedelta (days = 1 )
6107
6116
otherfn = f'{ self .fn } .{ rolloverDate :%Y-%m-%d} '
6108
6117
self .assertLogFile (otherfn )
6109
6118
with open (self .fn , encoding = "utf-8" ) as f :
@@ -6114,8 +6123,16 @@ def test_rollover_at_midnight(self):
6114
6123
self .assertIn (f'testing1 { i } ' , line )
6115
6124
6116
6125
def test_rollover_at_weekday (self ):
6126
+ os_helper .unlink (self .fn )
6117
6127
now = datetime .datetime .now ()
6118
6128
atTime = now .time ()
6129
+ if not 0.1 < atTime .microsecond / 1e6 < 0.9 :
6130
+ # The test requires all records to be emitted within
6131
+ # the range of the same whole second.
6132
+ time .sleep ((0.1 - atTime .microsecond / 1e6 ) % 1.0 )
6133
+ now = datetime .datetime .now ()
6134
+ atTime = now .time ()
6135
+ atTime = atTime .replace (microsecond = 0 )
6119
6136
fmt = logging .Formatter ('%(asctime)s %(message)s' )
6120
6137
for i in range (3 ):
6121
6138
fh = logging .handlers .TimedRotatingFileHandler (
@@ -6129,15 +6146,15 @@ def test_rollover_at_weekday(self):
6129
6146
for i , line in enumerate (f ):
6130
6147
self .assertIn (f'testing1 { i } ' , line )
6131
6148
6132
- os .utime (self .fn , (time . time () - 1 ,)* 2 )
6149
+ os .utime (self .fn , (now . timestamp () - 1 ,)* 2 )
6133
6150
for i in range (2 ):
6134
6151
fh = logging .handlers .TimedRotatingFileHandler (
6135
6152
self .fn , encoding = "utf-8" , when = f'W{ now .weekday ()} ' , atTime = atTime )
6136
6153
fh .setFormatter (fmt )
6137
6154
r2 = logging .makeLogRecord ({'msg' : f'testing2 { i } ' })
6138
6155
fh .emit (r2 )
6139
6156
fh .close ()
6140
- rolloverDate = datetime . datetime . now () - datetime .timedelta (days = 7 )
6157
+ rolloverDate = now - datetime .timedelta (days = 7 )
6141
6158
otherfn = f'{ self .fn } .{ rolloverDate :%Y-%m-%d} '
6142
6159
self .assertLogFile (otherfn )
6143
6160
with open (self .fn , encoding = "utf-8" ) as f :
0 commit comments