diff options
author | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2013-04-14 11:20:46 (GMT) |
---|---|---|
committer | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2013-04-14 11:20:46 (GMT) |
commit | d86ac96fcf91ac929198a52d565e00d19be2a6c0 (patch) | |
tree | 936cadbf4b4cc0d8ffccc15a419135993d64df61 /Lib | |
parent | 8a34596bbecdd5ad3dfd15df6fd4efa658e82765 (diff) | |
download | cpython-d86ac96fcf91ac929198a52d565e00d19be2a6c0.zip cpython-d86ac96fcf91ac929198a52d565e00d19be2a6c0.tar.gz cpython-d86ac96fcf91ac929198a52d565e00d19be2a6c0.tar.bz2 |
Closes #17713: Fixed bug in test_compute_rollover_weekly_attime.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_logging.py | 59 |
1 files changed, 33 insertions, 26 deletions
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index 9a91650..f96cdea 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -3955,41 +3955,48 @@ class TimedRotatingFileHandlerTest(BaseFileTest): rh = logging.handlers.TimedRotatingFileHandler( self.fn, when='MIDNIGHT', interval=1, backupCount=0, utc=True, atTime=atTime) + try: + actual = rh.computeRollover(currentTime) + self.assertEqual(actual, currentTime + 12 * 60 * 60) - actual = rh.computeRollover(currentTime) - self.assertEqual(actual, currentTime + 12 * 60 * 60) - - actual = rh.computeRollover(currentTime + 13 * 60 * 60) - self.assertEqual(actual, currentTime + 36 * 60 * 60) - - rh.close() + actual = rh.computeRollover(currentTime + 13 * 60 * 60) + self.assertEqual(actual, currentTime + 36 * 60 * 60) + finally: + rh.close() - @unittest.skipIf(True, 'Temporarily skipped while failures investigated.') def test_compute_rollover_weekly_attime(self): - currentTime = 0 + currentTime = int(time.time()) + today = currentTime - currentTime % 86400 + atTime = datetime.time(12, 0, 0) - wday = datetime.datetime.fromtimestamp(currentTime).weekday() + wday = datetime.datetime.fromtimestamp(currentTime + time.timezone).weekday() for day in range(7): rh = logging.handlers.TimedRotatingFileHandler( self.fn, when='W%d' % day, interval=1, backupCount=0, utc=True, atTime=atTime) - - if wday > day: - expected = (7 - wday + day) - else: - expected = (day - wday) - expected *= 24 * 60 * 60 - expected += 12 * 60 * 60 - actual = rh.computeRollover(currentTime) - self.assertEqual(actual, expected) - if day == wday: - # goes into following week - expected += 7 * 24 * 60 * 60 - actual = rh.computeRollover(currentTime + 13 * 60 * 60) - self.assertEqual(actual, expected) - - rh.close() + try: + if wday > day: + # The rollover day has already passed this week, so we + # go over into next week + expected = (7 - wday + day) + else: + expected = (day - wday) + # At this point expected is in days from now, convert to seconds + expected *= 24 * 60 * 60 + # Add in the rollover time + expected += 12 * 60 * 60 + # Add in adjustment for today + expected += today + actual = rh.computeRollover(currentTime) + self.assertEqual(actual, expected) + if day == wday: + # goes into following week + expected += 7 * 24 * 60 * 60 + actual = rh.computeRollover(currentTime + 13 * 60 * 60) + self.assertEqual(actual, expected) + finally: + rh.close() def secs(**kw): |