Index: third_party/twisted_8_1/twisted/test/test_logfile.py |
diff --git a/third_party/twisted_8_1/twisted/test/test_logfile.py b/third_party/twisted_8_1/twisted/test/test_logfile.py |
deleted file mode 100644 |
index a4c0b0f7bb052ca52f166ea2beda2eef67eab610..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/test/test_logfile.py |
+++ /dev/null |
@@ -1,288 +0,0 @@ |
-# Copyright (c) 2001-2007 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
-from twisted.trial import unittest |
- |
-# system imports |
-import os, time, stat |
- |
-# twisted imports |
-from twisted.python import logfile, runtime |
- |
- |
-class LogFileTestCase(unittest.TestCase): |
- """ |
- Test the rotating log file. |
- """ |
- |
- def setUp(self): |
- self.dir = self.mktemp() |
- os.makedirs(self.dir) |
- self.name = "test.log" |
- self.path = os.path.join(self.dir, self.name) |
- |
- |
- def tearDown(self): |
- """ |
- Restore back write rights on created paths: if tests modified the |
- rights, that will allow the paths to be removed easily afterwards. |
- """ |
- os.chmod(self.dir, 0777) |
- if os.path.exists(self.path): |
- os.chmod(self.path, 0777) |
- |
- |
- def testWriting(self): |
- log = logfile.LogFile(self.name, self.dir) |
- log.write("123") |
- log.write("456") |
- log.flush() |
- log.write("7890") |
- log.close() |
- |
- f = open(self.path, "r") |
- self.assertEquals(f.read(), "1234567890") |
- f.close() |
- |
- def testRotation(self): |
- # this logfile should rotate every 10 bytes |
- log = logfile.LogFile(self.name, self.dir, rotateLength=10) |
- |
- # test automatic rotation |
- log.write("123") |
- log.write("4567890") |
- log.write("1" * 11) |
- self.assert_(os.path.exists("%s.1" % self.path)) |
- self.assert_(not os.path.exists("%s.2" % self.path)) |
- log.write('') |
- self.assert_(os.path.exists("%s.1" % self.path)) |
- self.assert_(os.path.exists("%s.2" % self.path)) |
- self.assert_(not os.path.exists("%s.3" % self.path)) |
- log.write("3") |
- self.assert_(not os.path.exists("%s.3" % self.path)) |
- |
- # test manual rotation |
- log.rotate() |
- self.assert_(os.path.exists("%s.3" % self.path)) |
- self.assert_(not os.path.exists("%s.4" % self.path)) |
- log.close() |
- |
- self.assertEquals(log.listLogs(), [1, 2, 3]) |
- |
- def testAppend(self): |
- log = logfile.LogFile(self.name, self.dir) |
- log.write("0123456789") |
- log.close() |
- |
- log = logfile.LogFile(self.name, self.dir) |
- self.assertEquals(log.size, 10) |
- self.assertEquals(log._file.tell(), log.size) |
- log.write("abc") |
- self.assertEquals(log.size, 13) |
- self.assertEquals(log._file.tell(), log.size) |
- f = log._file |
- f.seek(0, 0) |
- self.assertEquals(f.read(), "0123456789abc") |
- log.close() |
- |
- def testLogReader(self): |
- log = logfile.LogFile(self.name, self.dir) |
- log.write("abc\n") |
- log.write("def\n") |
- log.rotate() |
- log.write("ghi\n") |
- log.flush() |
- |
- # check reading logs |
- self.assertEquals(log.listLogs(), [1]) |
- reader = log.getCurrentLog() |
- reader._file.seek(0) |
- self.assertEquals(reader.readLines(), ["ghi\n"]) |
- self.assertEquals(reader.readLines(), []) |
- reader.close() |
- reader = log.getLog(1) |
- self.assertEquals(reader.readLines(), ["abc\n", "def\n"]) |
- self.assertEquals(reader.readLines(), []) |
- reader.close() |
- |
- # check getting illegal log readers |
- self.assertRaises(ValueError, log.getLog, 2) |
- self.assertRaises(TypeError, log.getLog, "1") |
- |
- # check that log numbers are higher for older logs |
- log.rotate() |
- self.assertEquals(log.listLogs(), [1, 2]) |
- reader = log.getLog(1) |
- reader._file.seek(0) |
- self.assertEquals(reader.readLines(), ["ghi\n"]) |
- self.assertEquals(reader.readLines(), []) |
- reader.close() |
- reader = log.getLog(2) |
- self.assertEquals(reader.readLines(), ["abc\n", "def\n"]) |
- self.assertEquals(reader.readLines(), []) |
- reader.close() |
- |
- def testModePreservation(self): |
- """ |
- Check rotated files have same permissions as original. |
- """ |
- f = open(self.path, "w").close() |
- os.chmod(self.path, 0707) |
- mode = os.stat(self.path)[stat.ST_MODE] |
- log = logfile.LogFile(self.name, self.dir) |
- log.write("abc") |
- log.rotate() |
- self.assertEquals(mode, os.stat(self.path)[stat.ST_MODE]) |
- |
- |
- def test_noPermission(self): |
- """ |
- Check it keeps working when permission on dir changes. |
- """ |
- log = logfile.LogFile(self.name, self.dir) |
- log.write("abc") |
- |
- # change permissions so rotation would fail |
- os.chmod(self.dir, 0444) |
- |
- # if this succeeds, chmod doesn't restrict us, so we can't |
- # do the test |
- try: |
- f = open(os.path.join(self.dir,"xxx"), "w") |
- except (OSError, IOError): |
- pass |
- else: |
- f.close() |
- return |
- |
- log.rotate() # this should not fail |
- |
- log.write("def") |
- log.flush() |
- |
- f = log._file |
- self.assertEquals(f.tell(), 6) |
- f.seek(0, 0) |
- self.assertEquals(f.read(), "abcdef") |
- log.close() |
- |
- |
- def test_maxNumberOfLog(self): |
- """ |
- Test it respect the limit on the number of files when maxRotatedFiles |
- is not None. |
- """ |
- log = logfile.LogFile(self.name, self.dir, rotateLength=10, |
- maxRotatedFiles=3) |
- log.write("1" * 11) |
- log.write("2" * 11) |
- self.failUnless(os.path.exists("%s.1" % self.path)) |
- |
- log.write("3" * 11) |
- self.failUnless(os.path.exists("%s.2" % self.path)) |
- |
- log.write("4" * 11) |
- self.failUnless(os.path.exists("%s.3" % self.path)) |
- self.assertEquals(file("%s.3" % self.path).read(), "1" * 11) |
- |
- log.write("5" * 11) |
- self.assertEquals(file("%s.3" % self.path).read(), "2" * 11) |
- self.failUnless(not os.path.exists("%s.4" % self.path)) |
- |
- def test_fromFullPath(self): |
- """ |
- Test the fromFullPath method. |
- """ |
- log1 = logfile.LogFile(self.name, self.dir, 10, defaultMode=0777) |
- log2 = logfile.LogFile.fromFullPath(self.path, 10, defaultMode=0777) |
- self.assertEquals(log1.name, log2.name) |
- self.assertEquals(os.path.abspath(log1.path), log2.path) |
- self.assertEquals(log1.rotateLength, log2.rotateLength) |
- self.assertEquals(log1.defaultMode, log2.defaultMode) |
- |
- def test_defaultPermissions(self): |
- """ |
- Test the default permission of the log file: if the file exist, it |
- should keep the permission. |
- """ |
- f = file(self.path, "w") |
- os.chmod(self.path, 0707) |
- currentMode = stat.S_IMODE(os.stat(self.path)[stat.ST_MODE]) |
- f.close() |
- log1 = logfile.LogFile(self.name, self.dir) |
- self.assertEquals(stat.S_IMODE(os.stat(self.path)[stat.ST_MODE]), |
- currentMode) |
- |
- def test_specifiedPermissions(self): |
- """ |
- Test specifying the permissions used on the log file. |
- """ |
- log1 = logfile.LogFile(self.name, self.dir, defaultMode=0066) |
- mode = stat.S_IMODE(os.stat(self.path)[stat.ST_MODE]) |
- if runtime.platform.isWindows(): |
- # The only thing we can get here is global read-only |
- self.assertEquals(mode, 0444) |
- else: |
- self.assertEquals(mode, 0066) |
- |
- |
-class RiggedDailyLogFile(logfile.DailyLogFile): |
- _clock = 0.0 |
- |
- def _openFile(self): |
- logfile.DailyLogFile._openFile(self) |
- # rig the date to match _clock, not mtime |
- self.lastDate = self.toDate() |
- |
- def toDate(self, *args): |
- if args: |
- return time.gmtime(*args)[:3] |
- return time.gmtime(self._clock)[:3] |
- |
-class DailyLogFileTestCase(unittest.TestCase): |
- """ |
- Test rotating log file. |
- """ |
- |
- def setUp(self): |
- self.dir = self.mktemp() |
- os.makedirs(self.dir) |
- self.name = "testdaily.log" |
- self.path = os.path.join(self.dir, self.name) |
- |
- |
- def testWriting(self): |
- log = RiggedDailyLogFile(self.name, self.dir) |
- log.write("123") |
- log.write("456") |
- log.flush() |
- log.write("7890") |
- log.close() |
- |
- f = open(self.path, "r") |
- self.assertEquals(f.read(), "1234567890") |
- f.close() |
- |
- def testRotation(self): |
- # this logfile should rotate every 10 bytes |
- log = RiggedDailyLogFile(self.name, self.dir) |
- days = [(self.path + '.' + log.suffix(day * 86400)) for day in range(3)] |
- |
- # test automatic rotation |
- log._clock = 0.0 # 1970/01/01 00:00.00 |
- log.write("123") |
- log._clock = 43200 # 1970/01/01 12:00.00 |
- log.write("4567890") |
- log._clock = 86400 # 1970/01/02 00:00.00 |
- log.write("1" * 11) |
- self.assert_(os.path.exists(days[0])) |
- self.assert_(not os.path.exists(days[1])) |
- log._clock = 172800 # 1970/01/03 00:00.00 |
- log.write('') |
- self.assert_(os.path.exists(days[0])) |
- self.assert_(os.path.exists(days[1])) |
- self.assert_(not os.path.exists(days[2])) |
- log._clock = 259199 # 1970/01/03 23:59.59 |
- log.write("3") |
- self.assert_(not os.path.exists(days[2])) |
- |