Revision f65f63ef test/ganeti.utils_unittest.py

b/test/ganeti.utils_unittest.py
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

  

Also available in: Unified diff