]> granicus.if.org Git - python/commitdiff
TimedTRotatingFileHandler test now improved to minimise chances of failure on very...
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Thu, 12 May 2011 15:18:29 +0000 (16:18 +0100)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Thu, 12 May 2011 15:18:29 +0000 (16:18 +0100)
Lib/test/test_logging.py

index c68de1045f1745c30a4279dba0709c0113572f9a..93cf669ef0bcd1859e92f4b857e27a5d8a8e8b59 100644 (file)
@@ -3502,6 +3502,7 @@ class TimedRotatingFileHandlerTest(BaseFileTest):
         fh = logging.handlers.TimedRotatingFileHandler(self.fn, 'S',
                                                        backupCount=1)
         r = logging.makeLogRecord({'msg': 'testing'})
+        start = datetime.datetime.now()
         fh.emit(r)
         self.assertLogFile(self.fn)
         time.sleep(1.0)
@@ -3510,20 +3511,21 @@ class TimedRotatingFileHandlerTest(BaseFileTest):
         # At this point, we should have a recent rotated file which we
         # can test for the existence of. However, in practice, on some
         # machines which run really slowly, we don't know how far back
-        # in time to go to look for the log file. So, we go back a fair
-        # bit, and stop as soon as we see a rotated file. In theory this
-        # could of course still fail, but the chances are lower.
+        # in time to go to look for the log file. So, we go back as far as
+        # when the test started, and stop as soon as we see a rotated file.
         found = False
         now = datetime.datetime.now()
-        GO_BACK = 2 * 60 # seconds
-        for secs in range(1, GO_BACK):
-            prev = now - datetime.timedelta(seconds=secs)
+        secs = 1
+        prev = now - datetime.timedelta(seconds=secs)
+        while prev > start:
             fn = self.fn + prev.strftime(".%Y-%m-%d_%H-%M-%S")
             found = os.path.exists(fn)
             if found:
                 self.rmfiles.append(fn)
                 break
-        msg = 'No rotated files found, went back %d seconds' % GO_BACK
+            secs += 1
+            prev -= datetime.timedelta(seconds=1)
+        msg = 'No rotated files found, went back %d seconds' % secs
         self.assertTrue(found, msg=msg)
 
     def test_invalid(self):