Revision e587b46a test/ganeti.utils_unittest.py
b/test/ganeti.utils_unittest.py | ||
---|---|---|
52 | 52 |
ShellQuote, ShellQuoteArgs, TcpPing, ListVisibleFiles, \ |
53 | 53 |
SetEtcHostsEntry, RemoveEtcHostsEntry, FirstFree, OwnIpAddress, \ |
54 | 54 |
TailFile, ForceDictType, SafeEncode, IsNormAbsPath, FormatTime, \ |
55 |
UnescapeAndSplit, RunParts, PathJoin, HostInfo |
|
55 |
UnescapeAndSplit, RunParts, PathJoin, HostInfo, ReadOneLineFile
|
|
56 | 56 |
|
57 | 57 |
from ganeti.errors import LockError, UnitParseError, GenericError, \ |
58 | 58 |
ProgrammerError, OpPrereqError |
... | ... | |
541 | 541 |
"/dev/null/does-not-exist") |
542 | 542 |
|
543 | 543 |
|
544 |
class TestReadOneLineFile(testutils.GanetiTestCase): |
|
545 |
|
|
546 |
def setUp(self): |
|
547 |
testutils.GanetiTestCase.setUp(self) |
|
548 |
|
|
549 |
def testDefault(self): |
|
550 |
data = ReadOneLineFile(self._TestDataFilename("cert1.pem")) |
|
551 |
self.assertEqual(len(data), 27) |
|
552 |
self.assertEqual(data, "-----BEGIN CERTIFICATE-----") |
|
553 |
|
|
554 |
def testNotStrict(self): |
|
555 |
data = ReadOneLineFile(self._TestDataFilename("cert1.pem"), strict=False) |
|
556 |
self.assertEqual(len(data), 27) |
|
557 |
self.assertEqual(data, "-----BEGIN CERTIFICATE-----") |
|
558 |
|
|
559 |
def testStrictFailure(self): |
|
560 |
self.assertRaises(errors.GenericError, ReadOneLineFile, |
|
561 |
self._TestDataFilename("cert1.pem"), strict=True) |
|
562 |
|
|
563 |
def testLongLine(self): |
|
564 |
dummydata = (1024 * "Hello World! ") |
|
565 |
myfile = self._CreateTempFile() |
|
566 |
utils.WriteFile(myfile, data=dummydata) |
|
567 |
datastrict = ReadOneLineFile(myfile, strict=True) |
|
568 |
datalax = ReadOneLineFile(myfile, strict=False) |
|
569 |
self.assertEqual(dummydata, datastrict) |
|
570 |
self.assertEqual(dummydata, datalax) |
|
571 |
|
|
572 |
def testNewline(self): |
|
573 |
myfile = self._CreateTempFile() |
|
574 |
myline = "myline" |
|
575 |
for nl in ["", "\n", "\r\n"]: |
|
576 |
dummydata = "%s%s" % (myline, nl) |
|
577 |
utils.WriteFile(myfile, data=dummydata) |
|
578 |
datalax = ReadOneLineFile(myfile, strict=False) |
|
579 |
self.assertEqual(myline, datalax) |
|
580 |
datastrict = ReadOneLineFile(myfile, strict=True) |
|
581 |
self.assertEqual(myline, datastrict) |
|
582 |
|
|
583 |
def testWhitespaceAndMultipleLines(self): |
|
584 |
myfile = self._CreateTempFile() |
|
585 |
for nl in ["", "\n", "\r\n"]: |
|
586 |
for ws in [" ", "\t", "\t\t \t", "\t "]: |
|
587 |
dummydata = (1024 * ("Foo bar baz %s%s" % (ws, nl))) |
|
588 |
utils.WriteFile(myfile, data=dummydata) |
|
589 |
datalax = ReadOneLineFile(myfile, strict=False) |
|
590 |
if nl: |
|
591 |
self.assert_(set("\r\n") & set(dummydata)) |
|
592 |
self.assertRaises(errors.GenericError, ReadOneLineFile, |
|
593 |
myfile, strict=True) |
|
594 |
explen = len("Foo bar baz ") + len(ws) |
|
595 |
self.assertEqual(len(datalax), explen) |
|
596 |
self.assertEqual(datalax, dummydata[:explen]) |
|
597 |
self.assertFalse(set("\r\n") & set(datalax)) |
|
598 |
else: |
|
599 |
datastrict = ReadOneLineFile(myfile, strict=True) |
|
600 |
self.assertEqual(dummydata, datastrict) |
|
601 |
self.assertEqual(dummydata, datalax) |
|
602 |
|
|
603 |
def testEmptylines(self): |
|
604 |
myfile = self._CreateTempFile() |
|
605 |
myline = "myline" |
|
606 |
for nl in ["\n", "\r\n"]: |
|
607 |
for ol in ["", "otherline"]: |
|
608 |
dummydata = "%s%s%s%s%s%s" % (nl, nl, myline, nl, ol, nl) |
|
609 |
utils.WriteFile(myfile, data=dummydata) |
|
610 |
self.assert_(set("\r\n") & set(dummydata)) |
|
611 |
datalax = ReadOneLineFile(myfile, strict=False) |
|
612 |
self.assertEqual(myline, datalax) |
|
613 |
if ol: |
|
614 |
self.assertRaises(errors.GenericError, ReadOneLineFile, |
|
615 |
myfile, strict=True) |
|
616 |
else: |
|
617 |
datastrict = ReadOneLineFile(myfile, strict=True) |
|
618 |
self.assertEqual(myline, datastrict) |
|
619 |
|
|
620 |
|
|
544 | 621 |
class TestTimestampForFilename(unittest.TestCase): |
545 | 622 |
def test(self): |
546 | 623 |
self.assert_("." not in utils.TimestampForFilename()) |
Also available in: Unified diff