def test_case3(self): str1= StringIO( 'value1 = 5\r\n' 'value2 = 1.23 \n' '[section]\n' ' value3= "on"\n' ' value4= 1 ; with comment \n' ' ; A comment line \n' ' \n' ' value4= 2 \n' ' value4= 42 \n' ' value5= \'A very long quoted string\' \n' ) expected= str( "root {\n" " value1= 5\n" " value2= 1.23\n" " section {\n" " value3= on\n" " value4= 1\n" " # with comment \n" " # A comment line \n" " value4= 2\n" " value4= 42\n" " value5= A very long quoted string\n" " }\n" "}\n") reader= IniReader(self.handler1) reader.parse(str1) #print(self.out.getvalue()) self.assertEqual(self.out.getvalue(), expected) self.assertEqual(self.err.getvalue(), "")
class IniReaderTestCase(unittest.TestCase): def setUp(self): self.context= Group( { "value1" : Value(self, "val1", int), "value2" : Value(self, "val2", float), "section" : Group( { "value3" : Value(self, "val3", Map({"on" : True, "off" : False})), "value4" : MultiValue(self, "val4", int) }) }) self.val1 = 0 self.val2 = 0. self.val3 = False self.val4 = [] self.log= StringIO() self.err= StringIO() contentHandler= Dispatcher(self.context, ErrorHandler( out= self.log, err= self.err)) self.reader= IniReader(contentHandler) def test_case1(self): text=StringIO( "value1 = 5\n" "value2= 4.2\n" "\n" " [section] " " value3= on \n" " value4 = 3\n" " value4\t= 4 \n" " value4 = 5\n" "\n" ) self.reader.parse(text) self.assertEqual(self.val1, 5) self.assertEqual(self.val2, 4.2) self.assertEqual(self.val3, True) self.assertEqual(self.val4, [3, 4, 5]) self.assertEqual(self.context["section"].count, 1) self.assertEqual(self.context["value1"].count, 1) self.assertEqual(self.context["value2"].count, 1) self.assertEqual(self.context["section"]["value3"].count, 1) self.assertEqual(self.context["section"]["value4"].count, 3) self.assertEqual(self.log.getvalue(), "") self.assertEqual(self.err.getvalue(), "")