Revision 339be5a8 test/ganeti.utils_unittest.py

b/test/ganeti.utils_unittest.py
1558 1558
      self.fail("Didn't detect inner loop's exception")
1559 1559

  
1560 1560

  
1561
class TestLineSplitter(unittest.TestCase):
1562
  def test(self):
1563
    lines = []
1564
    ls = utils.LineSplitter(lines.append)
1565
    ls.write("Hello World\n")
1566
    self.assertEqual(lines, [])
1567
    ls.write("Foo\n Bar\r\n ")
1568
    ls.write("Baz")
1569
    ls.write("Moo")
1570
    self.assertEqual(lines, [])
1571
    ls.flush()
1572
    self.assertEqual(lines, ["Hello World", "Foo", " Bar"])
1573
    ls.close()
1574
    self.assertEqual(lines, ["Hello World", "Foo", " Bar", " BazMoo"])
1575

  
1576
  def _testExtra(self, line, all_lines, p1, p2):
1577
    self.assertEqual(p1, 999)
1578
    self.assertEqual(p2, "extra")
1579
    all_lines.append(line)
1580

  
1581
  def testExtraArgsNoFlush(self):
1582
    lines = []
1583
    ls = utils.LineSplitter(self._testExtra, lines, 999, "extra")
1584
    ls.write("\n\nHello World\n")
1585
    ls.write("Foo\n Bar\r\n ")
1586
    ls.write("")
1587
    ls.write("Baz")
1588
    ls.write("Moo\n\nx\n")
1589
    self.assertEqual(lines, [])
1590
    ls.close()
1591
    self.assertEqual(lines, ["", "", "Hello World", "Foo", " Bar", " BazMoo",
1592
                             "", "x"])
1593

  
1594

  
1561 1595
if __name__ == '__main__':
1562 1596
  testutils.GanetiTestProgram()

Also available in: Unified diff