42 |
42 |
RemoveFile, CheckDict, MatchNameComponent, FormatUnit, \
|
43 |
43 |
ParseUnit, AddAuthorizedKey, RemoveAuthorizedKey, \
|
44 |
44 |
ShellQuote, ShellQuoteArgs, TcpPing, ListVisibleFiles, \
|
45 |
|
SetEtcHostsEntry, RemoveEtcHostsEntry, FirstFree, OwnIpAddress
|
|
45 |
SetEtcHostsEntry, RemoveEtcHostsEntry, FirstFree, OwnIpAddress, \
|
|
46 |
TailFile
|
|
47 |
|
46 |
48 |
from ganeti.errors import LockError, UnitParseError, GenericError, \
|
47 |
49 |
ProgrammerError
|
48 |
50 |
|
... | ... | |
772 |
774 |
self.failUnlessRaises(AssertionError, FirstFree, [0, 3, 4, 6], base=3)
|
773 |
775 |
|
774 |
776 |
|
|
777 |
class TestTailFile(testutils.GanetiTestCase):
|
|
778 |
"""Test case for the TailFile function"""
|
|
779 |
|
|
780 |
def testEmpty(self):
|
|
781 |
fname = self._CreateTempFile()
|
|
782 |
self.failUnlessEqual(TailFile(fname), [])
|
|
783 |
self.failUnlessEqual(TailFile(fname, lines=25), [])
|
|
784 |
|
|
785 |
def testAllLines(self):
|
|
786 |
data = ["test %d" % i for i in range(30)]
|
|
787 |
for i in range(30):
|
|
788 |
fname = self._CreateTempFile()
|
|
789 |
fd = open(fname, "w")
|
|
790 |
fd.write("\n".join(data[:i]))
|
|
791 |
if i > 0:
|
|
792 |
fd.write("\n")
|
|
793 |
fd.close()
|
|
794 |
self.failUnlessEqual(TailFile(fname, lines=i), data[:i])
|
|
795 |
|
|
796 |
def testPartialLines(self):
|
|
797 |
data = ["test %d" % i for i in range(30)]
|
|
798 |
fname = self._CreateTempFile()
|
|
799 |
fd = open(fname, "w")
|
|
800 |
fd.write("\n".join(data))
|
|
801 |
fd.write("\n")
|
|
802 |
fd.close()
|
|
803 |
for i in range(1, 30):
|
|
804 |
self.failUnlessEqual(TailFile(fname, lines=i), data[-i:])
|
|
805 |
|
|
806 |
def testBigFile(self):
|
|
807 |
data = ["test %d" % i for i in range(30)]
|
|
808 |
fname = self._CreateTempFile()
|
|
809 |
fd = open(fname, "w")
|
|
810 |
fd.write("X" * 1048576)
|
|
811 |
fd.write("\n")
|
|
812 |
fd.write("\n".join(data))
|
|
813 |
fd.write("\n")
|
|
814 |
fd.close()
|
|
815 |
for i in range(1, 30):
|
|
816 |
self.failUnlessEqual(TailFile(fname, lines=i), data[-i:])
|
|
817 |
|
|
818 |
|
775 |
819 |
class TestFileLock(unittest.TestCase):
|
776 |
820 |
"""Test case for the FileLock class"""
|
777 |
821 |
|