Revision b774bb10 test/ganeti.utils_unittest.py

b/test/ganeti.utils_unittest.py
38 38
import warnings
39 39
import distutils.version
40 40
import glob
41
import md5
41 42

  
42 43
import ganeti
43 44
import testutils
......
516 517
                     None)
517 518

  
518 519

  
520
class TestReadFile(testutils.GanetiTestCase):
521
  def setUp(self):
522
    testutils.GanetiTestCase.setUp(self)
523

  
524
    self.tmpdir = tempfile.mkdtemp()
525
    self.fname = utils.PathJoin(self.tmpdir, "data1")
526

  
527
  def tearDown(self):
528
    testutils.GanetiTestCase.tearDown(self)
529

  
530
    shutil.rmtree(self.tmpdir)
531

  
532
  def testReadAll(self):
533
    data = utils.ReadFile(self._TestDataFilename("cert1.pem"))
534
    self.assertEqual(len(data), 814)
535

  
536
    h = md5.new()
537
    h.update(data)
538
    self.assertEqual(h.hexdigest(), "a491efb3efe56a0535f924d5f8680fd4")
539

  
540
  def testReadSize(self):
541
    data = utils.ReadFile(self._TestDataFilename("cert1.pem"),
542
                          size=100)
543
    self.assertEqual(len(data), 100)
544

  
545
    h = md5.new()
546
    h.update(data)
547
    self.assertEqual(h.hexdigest(), "893772354e4e690b9efd073eed433ce7")
548

  
549
  def testReadOneline(self):
550
    data = utils.ReadFile(self._TestDataFilename("cert1.pem"),
551
                          oneline=True)
552
    self.assertEqual(len(data), 27)
553
    self.assertEqual(data, "-----BEGIN CERTIFICATE-----")
554

  
555
  def testReadOnelineSize(self):
556
    dummydata = (1024 * "Hello World! ")
557
    self.assertFalse(set("\r\n") & set(dummydata))
558

  
559
    utils.WriteFile(self.fname, data=dummydata)
560

  
561
    data = utils.ReadFile(self.fname, oneline=True, size=555)
562
    self.assertEqual(len(data), 555)
563
    self.assertEqual(data, dummydata[:555])
564
    self.assertFalse(set("\r\n") & set(data))
565

  
566
  def testReadOnelineSize2(self):
567
    for end in ["\n", "\r\n"]:
568
      dummydata = (1024 * ("Hello World%s" % end))
569
      self.assert_(set("\r\n") & set(dummydata))
570

  
571
      utils.WriteFile(self.fname, data=dummydata)
572

  
573
      data = utils.ReadFile(self.fname, oneline=True, size=555)
574
      self.assertEqual(len(data), len("Hello World"))
575
      self.assertEqual(data, dummydata[:11])
576
      self.assertFalse(set("\r\n") & set(data))
577

  
578
  def testReadOnelineWhitespace(self):
579
    for ws in [" ", "\t", "\t\t  \t", "\t "]:
580
      dummydata = (1024 * ("Foo bar baz %s\n" % ws))
581
      self.assert_(set("\r\n") & set(dummydata))
582

  
583
      utils.WriteFile(self.fname, data=dummydata)
584

  
585
      data = utils.ReadFile(self.fname, oneline=True, size=555)
586
      explen = len("Foo bar baz ") + len(ws)
587
      self.assertEqual(len(data), explen)
588
      self.assertEqual(data, dummydata[:explen])
589
      self.assertFalse(set("\r\n") & set(data))
590

  
591
  def testError(self):
592
    self.assertRaises(EnvironmentError, utils.ReadFile,
593
                      utils.PathJoin(self.tmpdir, "does-not-exist"))
594

  
595

  
519 596
class TestTimestampForFilename(unittest.TestCase):
520 597
  def test(self):
521 598
    self.assert_("." not in utils.TimestampForFilename())

Also available in: Unified diff