]> git.phdru.name Git - phdru.name/cgi-bin/blog-ru/search-tags.git/blob - test_parser.py
Add parser
[phdru.name/cgi-bin/blog-ru/search-tags.git] / test_parser.py
1 #! /usr/bin/env python
2
3 import unittest
4
5 class TestParser(unittest.TestCase):
6     def test_01_import(self):
7         global parser
8         from parse_query import parser
9
10     def test_02_tag(self):
11         self.assertEqual(parser.parse('xxx'), ('NAME', 'xxx'))
12
13     def test_03_bad_tag(self):
14         from ply.lex import LexError
15         self.assertRaises(LexError, parser.parse, 'XXX')
16
17     def test_04_expression(self):
18         self.assertEqual(parser.parse('!(xxx&yyy)'),
19             ('NOT', ('PARENS', ('AND', ('NAME', 'xxx'), ('NAME', 'yyy'))))
20         )
21
22     def test_05_bad_expression(self):
23         self.assertIs(parser.parse('!(xxx&yyy'), None)
24
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'))
28         )
29
30 if __name__ == "__main__":
31     unittest.main()