Example #1
0
    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(), "")
Example #2
0
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(), "")
Example #3
0
 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)