Ejemplo n.º 1
0
 def test_right_associate(self):
     result = parser.parse(resolve, 'alist_-_{blist_|_clist}')
     expected = ('AA-(BB|CC)', alist[1] - (blist[1] | clist[1]))
     self.assertEqual(result, expected)
Ejemplo n.º 2
0
 def test_simple_difference(self):
     result = parser.parse(resolve, 'alist_-_blist')
     expected = ('AA-BB', alist[1] - blist[1])
     self.assertEqual(result, expected)
Ejemplo n.º 3
0
 def test_left_associate(self):
     result = parser.parse(resolve, '{alist_-_blist}_|_clist')
     expected = ('(AA-BB)|CC', (alist[1] - blist[1]) | clist[1])
     self.assertEqual(result, expected)
Ejemplo n.º 4
0
 def test_fail_bad_token(self):
     expected = 'Unrecognized syntax near character 6'
     with helper.AssertFail(self, SyntaxError, expected):
         parser.parse(resolve, 'alist_+_blist')
Ejemplo n.º 5
0
 def test_simple_union(self):
     result = parser.parse(resolve, 'alist_|_blist')
     expected = ('AA|BB', alist[1] | blist[1])
     self.assertEqual(result, expected)
Ejemplo n.º 6
0
 def test_parens_left(self):
     result = parser.parse(resolve, '{alist_-_clist}_-_blist')
     expected = ('AA-CC-BB', (alist[1] - clist[1]) - blist[1])
     self.assertEqual(result, expected)
Ejemplo n.º 7
0
 def test_vanilla_empty(self):
     """Vanilla address is not a set expression, so empty is not an error."""
     result = parser.parse(resolve, 'empty')
     expected = ('Empty', set())
     self.assertEqual(result, expected)
Ejemplo n.º 8
0
 def test_fail_misplaced_close_paren(self):
     expected = 'Misplaced closing parenthesis'
     with helper.AssertFail(self, SyntaxError, expected):
         parser.parse(resolve, 'alist_&_}')
Ejemplo n.º 9
0
 def test_fail_unmatched_close_paren(self):
     expected = 'Unmatched closing parenthesis'
     with helper.AssertFail(self, SyntaxError, expected):
         parser.parse(resolve, '{alist_&_blist}}')
Ejemplo n.º 10
0
 def test_fail_unmatched_open_paren(self):
     expected = 'Unmatched opening parenthesis'
     with helper.AssertFail(self, SyntaxError, expected):
         parser.parse(resolve, '{alist')
Ejemplo n.º 11
0
 def test_fail_misplaced_open_paren(self):
     expected = 'Misplaced opening parenthesis'
     with helper.AssertFail(self, SyntaxError, expected):
         parser.parse(resolve, 'alist{blist}')
Ejemplo n.º 12
0
 def test_fail_misplaced_difference(self):
     expected = 'Misplaced difference operator'
     with helper.AssertFail(self, SyntaxError, expected):
         parser.parse(resolve, '_-_alist')
Ejemplo n.º 13
0
 def test_fail_misplaced_intersect(self):
     expected = 'Misplaced intersection operator'
     with helper.AssertFail(self, SyntaxError, expected):
         parser.parse(resolve, '_&_alist')
Ejemplo n.º 14
0
 def test_fail_misplaced_leaf(self):
     expected = 'Misplaced list or person name'
     with helper.AssertFail(self, SyntaxError, expected):
         parser.parse(resolve, '{alist}blist')
Ejemplo n.º 15
0
 def test_omitted_parens(self):
     result = parser.parse(resolve, 'alist_|_blist_|_clist')
     expected = ('AA|BB|CC', alist[1] | blist[1] | clist[1])
     self.assertEqual(result, expected)
Ejemplo n.º 16
0
 def test_single_list(self):
     result = parser.parse(resolve, 'alist')
     expected = ('Alist', alist[1])
     self.assertEqual(result, expected)
Ejemplo n.º 17
0
 def test_surplus_parens(self):
     result = parser.parse(resolve, 'alist_|_{blist_|_clist}')
     expected = ('AA|BB|CC', alist[1] | blist[1] | clist[1])
     self.assertEqual(result, expected)
Ejemplo n.º 18
0
 def test_single_in_parens(self):
     result = parser.parse(resolve, '{alist}')
     expected = ('AA', alist[1])
     self.assertEqual(result, expected)
Ejemplo n.º 19
0
 def test_parens_right(self):
     result = parser.parse(resolve, 'alist_-_{clist_-_blist}')
     expected = ('AA-(CC-BB)', alist[1] - (clist[1] - blist[1]))
     self.assertEqual(result, expected)
Ejemplo n.º 20
0
 def test_simple_intersection(self):
     result = parser.parse(resolve, 'alist_&_blist')
     expected = ('AA&BB', alist[1] & blist[1])
     self.assertEqual(result, expected)
Ejemplo n.º 21
0
 def test_fail_empty_result(self):
     expected = 'No recipients match this set expression'
     with helper.AssertFail(self, SyntaxError, expected):
         parser.parse(resolve, 'alist_-_alist')
Ejemplo n.º 22
0
 def test_fail_unparenthesized(self):
     expected = 'Parentheses required when mixing different operators'
     with helper.AssertFail(self, SyntaxError, expected):
         parser.parse(resolve, 'alist_&_blist_|_clist')