X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=parser%2Ftest_parser.py;h=4696047338be02e8f749ebae22d5fb39b7e4f5cf;hb=0c0f61d9decb9b05cfe0babd2d74bda5e347fbf7;hp=3e54f5c16a76965cc854aa0be6642f767975da2b;hpb=0fce41134a46753c331b999b933bcbc033f8e535;p=phdru.name%2Fcgi-bin%2Fblog-ru%2Fsearch-tags.git diff --git a/parser/test_parser.py b/parser/test_parser.py index 3e54f5c..4696047 100755 --- a/parser/test_parser.py +++ b/parser/test_parser.py @@ -18,14 +18,36 @@ class TestParser(unittest.TestCase): self.assertEqual(parser.parse('!(xxx&yyy)'), ('NOT', ('PARENS', ('AND', ('NAME', 'xxx'), ('NAME', 'yyy')))) ) - - def test_05_bad_expression(self): - self.assertIs(parser.parse('!(xxx&yyy'), None) - - def test_06_expression2(self): + self.assertEqual(parser.parse('!(xxx & yyy)'), + ('NOT', ('PARENS', ('AND', ('NAME', 'xxx'), ('NAME', 'yyy')))) + ) self.assertEqual(parser.parse('!xxx&yyy&zzz|ooo'), ('OR', ('AND', ('AND', ('NOT', ('NAME', 'xxx')), ('NAME', 'yyy')), ('NAME', 'zzz')), ('NAME', 'ooo')) ) + self.assertEqual(parser.parse('!(xxx && yyy)'), + ('NOT', ('PARENS', ('AND', ('NAME', 'xxx'), ('NAME', 'yyy')))) + ) + self.assertEqual(parser.parse('!(xxx || yyy)'), + ('NOT', ('PARENS', ('OR', ('NAME', 'xxx'), ('NAME', 'yyy')))) + ) + self.assertEqual(parser.parse('xxx and yyy'), + ('AND', ('NAME', 'xxx'), ('NAME', 'yyy')) + ) + self.assertEqual(parser.parse('xxx or yyy'), + ('OR', ('NAME', 'xxx'), ('NAME', 'yyy')) + ) + self.assertEqual(parser.parse('xxx OR yyy'), + ('OR', ('NAME', 'xxx'), ('NAME', 'yyy')) + ) + self.assertEqual(parser.parse('not xxx'), + ('NOT', ('NAME', 'xxx')) + ) + self.assertEqual(parser.parse('NOT xxx'), + ('NOT', ('NAME', 'xxx')) + ) + + def test_05_bad_expression(self): + self.assertIs(parser.parse('!(xxx&yyy'), None) if __name__ == "__main__": unittest.main()