예제 #1
0
 def testUpdate(self):
     name = self._CreateTempFile()
     oldi = utils.GetFileID(path=name)
     fd = os.open(name, os.O_RDWR)
     try:
         newi = utils.GetFileID(fd=fd)
         self.failUnless(utils.VerifyFileID(oldi, newi))
         self.failUnless(utils.VerifyFileID(newi, oldi))
     finally:
         os.close(fd)
예제 #2
0
 def testWriteFile(self):
   name = self._CreateTempFile()
   oldi = utils.GetFileID(path=name)
   mtime = oldi[2]
   os.utime(name, (mtime + 10, mtime + 10))
   self.assertRaises(errors.LockError, utils.SafeWriteFile, name,
                     oldi, data="")
   os.utime(name, (mtime - 10, mtime - 10))
   utils.SafeWriteFile(name, oldi, data="")
   oldi = utils.GetFileID(path=name)
   mtime = oldi[2]
   os.utime(name, (mtime + 10, mtime + 10))
   # this doesn't raise, since we passed None
   utils.SafeWriteFile(name, None, data="")
예제 #3
0
    def testReopen(self):
        tmpfile = tempfile.NamedTemporaryFile()
        tmpfile2 = tempfile.NamedTemporaryFile()

        handler = utils.log._ReopenableLogHandler(tmpfile.name)

        self.assertFalse(utils.ReadFile(tmpfile.name))
        self.assertFalse(utils.ReadFile(tmpfile2.name))

        logger = logging.Logger("TestLoggerReopen")
        logger.addHandler(handler)

        for _ in range(3):
            logger.error("Test message ERROR")
        handler.flush()
        self.assertEqual(len(utils.ReadFile(tmpfile.name).splitlines()), 3)
        before_id = utils.GetFileID(tmpfile.name)

        handler.RequestReopen()
        self.assertTrue(handler._reopen)
        self.assertTrue(
            utils.VerifyFileID(utils.GetFileID(tmpfile.name), before_id))

        # Rename only after requesting reopen
        os.rename(tmpfile.name, tmpfile2.name)
        assert not os.path.exists(tmpfile.name)

        # Write another message, should reopen
        for _ in range(4):
            logger.info("Test message INFO")

            # Flag must be reset
            self.assertFalse(handler._reopen)

            self.assertFalse(
                utils.VerifyFileID(utils.GetFileID(tmpfile.name), before_id))

        logger.removeHandler(handler)
        self.assertFalse(logger.handlers)
        handler.close()

        self.assertEqual(len(utils.ReadFile(tmpfile.name).splitlines()), 4)
        self.assertEqual(len(utils.ReadFile(tmpfile2.name).splitlines()), 3)
예제 #4
0
 def testEquality(self):
     name = self._CreateTempFile()
     oldi = utils.GetFileID(path=name)
     self.failUnless(utils.VerifyFileID(oldi, oldi))
예제 #5
0
 def testEquality(self):
     name = self._CreateTempFile()
     oldi = utils.GetFileID(path=name)
     self.assertTrue(utils.VerifyFileID(oldi, oldi))