test/unittest_rqlrewrite.py
branchstable
changeset 9262 7fc54e02291f
parent 9189 9448215c73c4
child 9327 dbabdc323e7d
equal deleted inserted replaced
9249:fdd7f614ca2a 9262:7fc54e02291f
   436         rewrite(rqlst, {('C', 'S'): (constraint,)}, {}, 'S')
   436         rewrite(rqlst, {('C', 'S'): (constraint,)}, {}, 'S')
   437         self.assertEqual(rqlst.as_string(),
   437         self.assertEqual(rqlst.as_string(),
   438                          u"Any C WHERE C is Card, EXISTS(C owned_by A, A is CWUser)")
   438                          u"Any C WHERE C is Card, EXISTS(C owned_by A, A is CWUser)")
   439 
   439 
   440     def test_rqlexpr_not_relation_1_1(self):
   440     def test_rqlexpr_not_relation_1_1(self):
   441         constraint = RRQLExpression('X owned_by Z, Z login "hop"', 'X')
   441         constraint = ERQLExpression('X owned_by Z, Z login "hop"', 'X')
   442         rqlst = parse('Affaire A WHERE NOT EXISTS(A documented_by C)')
   442         rqlst = parse('Affaire A WHERE NOT EXISTS(A documented_by C)')
   443         rewrite(rqlst, {('C', 'X'): (constraint,)}, {}, 'X')
   443         rewrite(rqlst, {('C', 'X'): (constraint,)}, {}, 'X')
   444         self.assertEqual(rqlst.as_string(),
   444         self.assertEqual(rqlst.as_string(),
   445                          u'Any A WHERE NOT EXISTS(A documented_by C, EXISTS(C owned_by B, B login "hop", B is CWUser), C is Card), A is Affaire')
   445                          u'Any A WHERE NOT EXISTS(A documented_by C, EXISTS(C owned_by B, B login "hop", B is CWUser), C is Card), A is Affaire')
   446 
   446 
   447     def test_rqlexpr_not_relation_1_2(self):
   447     def test_rqlexpr_not_relation_1_2(self):
   448         constraint = RRQLExpression('X owned_by Z, Z login "hop"', 'X')
   448         constraint = ERQLExpression('X owned_by Z, Z login "hop"', 'X')
   449         rqlst = parse('Affaire A WHERE NOT EXISTS(A documented_by C)')
   449         rqlst = parse('Affaire A WHERE NOT EXISTS(A documented_by C)')
   450         rewrite(rqlst, {('A', 'X'): (constraint,)}, {}, 'X')
   450         rewrite(rqlst, {('A', 'X'): (constraint,)}, {}, 'X')
   451         self.assertEqual(rqlst.as_string(),
   451         self.assertEqual(rqlst.as_string(),
   452                          u'Any A WHERE NOT EXISTS(A documented_by C, C is Card), A is Affaire, EXISTS(A owned_by B, B login "hop", B is CWUser)')
   452                          u'Any A WHERE NOT EXISTS(A documented_by C, C is Card), A is Affaire, EXISTS(A owned_by B, B login "hop", B is CWUser)')
   453 
   453 
   454     def test_rqlexpr_not_relation_2(self):
   454     def test_rqlexpr_not_relation_2(self):
   455         constraint = RRQLExpression('X owned_by Z, Z login "hop"', 'X')
   455         constraint = ERQLExpression('X owned_by Z, Z login "hop"', 'X')
   456         rqlst = rqlhelper.parse('Affaire A WHERE NOT A documented_by C', annotate=False)
   456         rqlst = rqlhelper.parse('Affaire A WHERE NOT A documented_by C', annotate=False)
   457         rewrite(rqlst, {('C', 'X'): (constraint,)}, {}, 'X')
   457         rewrite(rqlst, {('C', 'X'): (constraint,)}, {}, 'X')
   458         self.assertEqual(rqlst.as_string(),
   458         self.assertEqual(rqlst.as_string(),
   459                          u'Any A WHERE NOT EXISTS(A documented_by C, EXISTS(C owned_by B, B login "hop", B is CWUser), C is Card), A is Affaire')
   459                          u'Any A WHERE NOT EXISTS(A documented_by C, EXISTS(C owned_by B, B login "hop", B is CWUser), C is Card), A is Affaire')
   460 
   460 
   461     def test_rqlexpr_multiexpr_outerjoin(self):
   461     def test_rqlexpr_multiexpr_outerjoin(self):
   462         c1 = RRQLExpression('X owned_by Z, Z login "hop"', 'X')
   462         c1 = ERQLExpression('X owned_by Z, Z login "hop"', 'X')
   463         c2 = RRQLExpression('X owned_by Z, Z login "hip"', 'X')
   463         c2 = ERQLExpression('X owned_by Z, Z login "hip"', 'X')
   464         c3 = RRQLExpression('X owned_by Z, Z login "momo"', 'X')
   464         c3 = ERQLExpression('X owned_by Z, Z login "momo"', 'X')
   465         rqlst = rqlhelper.parse('Any A WHERE A documented_by C?', annotate=False)
   465         rqlst = rqlhelper.parse('Any A WHERE A documented_by C?', annotate=False)
   466         rewrite(rqlst, {('C', 'X'): (c1, c2, c3)}, {}, 'X')
   466         rewrite(rqlst, {('C', 'X'): (c1, c2, c3)}, {}, 'X')
   467         self.assertEqual(rqlst.as_string(),
   467         self.assertEqual(rqlst.as_string(),
   468                          u'Any A WHERE A documented_by C?, A is Affaire '
   468                          u'Any A WHERE A documented_by C?, A is Affaire '
   469                          'WITH C BEING (Any C WHERE ((EXISTS(C owned_by B, B login "hop")) '
   469                          'WITH C BEING (Any C WHERE ((EXISTS(C owned_by B, B login "hop")) '