def test_negative_number_test(self):
     """ a negative number test """
     the_string = "         [ '-10.4',     1.435, 3 ]"
     
     compiler = Compiler()
     
     the_result = compiler.compile_list(the_string)
     
     self.assertEqual(the_result, [ '-10.4', 1.435, 3])
 def test_list_without_bracket_test_2(self): #pylint: disable=C0103
     """ list without bracket test with a list inside """
     the_string = " 'a', b, ['a thing', 2]"
             
     compiler = Compiler()
     
     the_result = compiler.compile_list(the_string)
     
     self.assertEqual(the_result, ['a', 'b', ['a thing', 2] ])
 def test_simple_list_test(self):
     """ a first simple test with space and indent, dedents to eat"""
     
     the_string = "         [ 'a',     1.435, 3 ]"
     
     compiler = Compiler()
     
     the_result = compiler.compile_list(the_string)
     
     self.assertEqual(the_result, [ 'a', 1.435, 3])
    def test_everything(self):
        """ everything """

        the_string = "['a',1,'b',{2:3,4:[1,'hello', no quotes, [1,2,3,{1:2,3:4}]]} ]"

        compiler = Compiler()

        the_result = compiler.compile_list(the_string)

        self.assertEqual(the_result, ["a", 1, "b", {2: 3, 4: [1, "hello", "no quotes", [1, 2, 3, {1: 2, 3: 4}]]}])
 def test_list_with_dict(self):
     """ list with dict """
     
     the_string = "['a',1,'b',{2:3,4:5} ]"
             
     compiler = Compiler()
     
     the_result = compiler.compile_list(the_string)
     
     self.assertEqual(the_result, ['a', 1, 'b', { 2 : 3 , 4 : 5} ])
 def test_dict_with_list(self):
     """ dict with list """
     
     the_string = "{'a':1, b:[1,2,3,4,5] }"
             
     compiler = Compiler()
     
     the_result = compiler.compile_dict(the_string)
     
     self.assertEqual(the_result, {'a':1, 'b':[1, 2, 3, 4, 5]})
 def test_dict_error(self):
     """ dict error """
     the_string = "{'a':1, b:2 "
             
     compiler = Compiler()
     
     try:
         compiler.compile_dict(the_string)
     except CompilerError, err:
         self.assertEqual(err.message, 'Expression "{\'a\':1, b:2 " cannot be converted as a dict.')
 def test_simple_dict(self):
     """ simple dict """
     
     the_string = "{'a':1, b:2 }"
             
     compiler = Compiler()
     
     the_result = compiler.compile_dict(the_string)
     
     self.assertEqual(the_result, {'a':1, 'b':2 })
 def test_list_error_2(self):
     """ unsupported char @ """
     the_string = " a @"
     
     compiler = Compiler()
     
     try:
         compiler.compile_list(the_string)
     except CompilerError, err:
         self.assertEqual(err.message, 'Unsupported token (type: @, value : OP) (line=1,col=3).')
 def test_special_character_in_string(self):#pylint: disable=C0103
     """ simple list without bracket test """
     
     the_string = " 'a@', b"
             
     compiler = Compiler()
     
     the_result = compiler.compile_list(the_string)
     
     self.assertEqual(the_result, ['a@','b'])
    def test_imbricated_lists_test(self):
        """ multiple lists within lists """

        the_string = "[a,b, [1,2,3,4, [456,6,'absdef'], 234, 2.456 ], aqwe, done]"

        compiler = Compiler()

        the_result = compiler.compile_list(the_string)

        self.assertEqual(the_result, ["a", "b", [1, 2, 3, 4, [456, 6, "absdef"], 234, 2.456], "aqwe", "done"])
 def test_noquotes_dict(self):
     """ no quotes dict """
     
     the_string = "{ no12: a b , no10:a}"
             
     compiler = Compiler()
     
     the_result = compiler.compile_dict(the_string)
     
     self.assertEqual(the_result, { 'no12': 'a b' , 'no10':'a'})
    def test_noquotes_dict(self):
        """ no quotes dict """

        the_string = "{ no12: a b , no10:a}"

        compiler = Compiler()

        the_result = compiler.compile_dict(the_string)

        self.assertEqual(the_result, {"no12": "a b", "no10": "a"})
 def test_list_error(self):
     """ list error """
     the_string = "  a ]"
     
     compiler = Compiler()
     
     try:
         compiler.compile_list(the_string)
     except CompilerError, err:
         self.assertEqual(err.message, 'Expression "  a ]" cannot be converted as a list.')
 def test_list_without_bracket_test(self):
     """ simple list without bracket test """
     
     the_string = " 'a', b"
             
     compiler = Compiler()
     
     the_result = compiler.compile_list(the_string)
     
     self.assertEqual(the_result, ['a', 'b'])
 def test_imbricated_lists_test(self):
     """ multiple lists within lists """
     
     the_string = "[a,b, [1,2,3,4, [456,6,'absdef'], 234, 2.456 ], aqwe, done]"
             
     compiler = Compiler()
     
     the_result = compiler.compile_list(the_string)
     
     self.assertEqual(the_result, ['a', 'b', [1, 2, 3, 4, [456, 6, 'absdef'], 234, 2.456 ]\
                                   , 'aqwe', 'done'])
 def test_everything(self):
     """ everything """
     
     the_string = "['a',1,'b',{2:3,4:[1,'hello', no quotes, [1,2,3,{1:2,3:4}]]} ]"
             
     compiler = Compiler()
     
     the_result = compiler.compile_list(the_string)
     
     self.assertEqual(the_result, ['a', 1, 'b', \
                                   {2 : 3, \
                                    4: [1, 'hello', 'no quotes', [1, 2, 3, {1:2, 3:4 }]]} ])
    def test_list_unicode_val(self):
        """ list unicode val """
        the_string = "[ u'[Gmail]/Чаты', 'z' ]".decode('utf-8')

        #to be in the same conditions as the conf object need to decode utf-8 as
        # it is done automatically with the os.open(...., 'uft-8')
        
        compiler = Compiler()
        
        compiler.compile_list(the_string)
        
        the_result = compiler.compile_list(the_string)
        
        self.assertEqual(the_result, [ u'[Gmail]/Чаты', 'z' ])