5 class TestParser(unittest.TestCase):
6 def test_01_import(self):
8 from parser import parser
10 def test_02_tag(self):
11 self.assertEqual(parser.parse('xxx'), ('NAME', 'xxx'))
13 def test_03_bad_tag(self):
14 from ply.lex import LexError
15 self.assertRaises(LexError, parser.parse, 'XXX')
17 def test_04_expression(self):
18 self.assertEqual(parser.parse('!(xxx&yyy)'),
19 ('NOT', ('PARENS', ('AND', ('NAME', 'xxx'), ('NAME', 'yyy'))))
22 def test_05_bad_expression(self):
23 self.assertIs(parser.parse('!(xxx&yyy'), None)
25 def test_06_expression2(self):
26 self.assertEqual(parser.parse('!xxx&yyy&zzz|ooo'),
27 ('OR', ('AND', ('AND', ('NOT', ('NAME', 'xxx')), ('NAME', 'yyy')), ('NAME', 'zzz')), ('NAME', 'ooo'))
30 if __name__ == "__main__":