def test_dict_one_element(self): lexer = Lexer('a = {x: "1"}') parser = Parser(lexer) parser.parse() self.assertEqual(parser.var_defs[0][0], 'a') self.assertEqual(repr(parser.var_defs[0][1]), '{x: \'1\'}')
def test_dict_two_elements_comma(self): lexer = Lexer('a = {x: "1", y: "2",}') parser = Parser(lexer) parser.parse() self.assertEqual(parser.var_defs[0][0], 'a') self.assertEqual(repr(parser.var_defs[0][1]), '{x: \'1\', y: \'2\'}')
def test_dict_empty(self): lexer = Lexer('a = {}') parser = Parser(lexer) parser.parse() self.assertEqual(parser.var_defs[0][0], 'a') self.assertEqual(repr(parser.var_defs[0][1]), repr({}))
def test_list_one_element_comma(self): lexer = Lexer('a = ["x",]') parser = Parser(lexer) parser.parse() self.assertEqual(parser.var_defs[0][0], 'a') self.assertEqual(repr(parser.var_defs[0][1]), repr(['x']))
def test_assign_string(self): lexer = Lexer('a = "example"') parser = Parser(lexer) parser.parse() self.assertEqual(parser.var_defs[0][0], 'a') self.assertEqual(repr(parser.var_defs[0][1]), repr('example'))
def test_list_empty(self): lexer = Lexer('a = []') parser = Parser(lexer) parser.parse() self.assertEqual(parser.var_defs[0][0], 'a') self.assertEqual(repr(parser.var_defs[0][1]), repr([]))
def test_list_two_elements(self): lexer = Lexer('a = ["x", "y"]') parser = Parser(lexer) parser.parse() self.assertEqual(parser.var_defs[0][0], 'a') self.assertEqual(repr(parser.var_defs[0][1]), repr(['x', 'y']))
def test_module_path_from_lexer(self): """Test whether the path are passed from Lexer to parsed modules.""" content = ''' cc_library { name: "libfoo", } ''' parser = Parser(Lexer(content, path='test_path')) parser.parse() self.assertEqual('test_path', parser.modules[0][1]['_path'])
def test_create_var_ref(self): parser = Parser(None) str1 = String(1) parser.define_var('a', str1) var1 = parser.create_var_ref('a') self.assertIsInstance(var1, VarRef) self.assertEqual(var1.name, 'a') self.assertIs(var1.value, str1) var2 = parser.create_var_ref('b') self.assertIsInstance(var2, VarRef) self.assertEqual(var2.name, 'b') self.assertIs(var2.value, None)
def test_define_var(self): parser = Parser(None) str1 = String(1) parser.define_var('a', str1) self.assertEqual(len(parser.var_defs), 1) self.assertEqual(len(parser.vars), 1) self.assertIn('a', parser.vars) self.assertIs(parser.vars['a'], str1) str2 = String(2) parser.define_var('a', str2) self.assertEqual(len(parser.var_defs), 2) self.assertEqual(len(parser.vars), 1) self.assertIn('a', parser.vars) self.assertIs(parser.vars['a'], str2)