server/test/unittest_rqlrewrite.py
changeset 2968 0e3460341023
parent 2920 64322aa83a1d
equal deleted inserted replaced
2902:dd9f2dd02f85 2968:0e3460341023
    99                              "S is Affaire")
    99                              "S is Affaire")
   100         self.failUnless('D' in kwargs)
   100         self.failUnless('D' in kwargs)
   101 
   101 
   102     def test_or(self):
   102     def test_or(self):
   103         constraint = '(X identity U) OR (X in_state ST, CL identity U, CL in_state ST, ST name "subscribed")'
   103         constraint = '(X identity U) OR (X in_state ST, CL identity U, CL in_state ST, ST name "subscribed")'
   104         rqlst = parse('Any S WHERE S owned_by C, C eid %(u)s')
   104         rqlst = parse('Any S WHERE S owned_by C, C eid %(u)s, S is in (CWUser, CWGroup)')
   105         rewrite(rqlst, {'C': (constraint,)}, {'u':1})
   105         rewrite(rqlst, {'C': (constraint,)}, {'u':1})
   106         self.failUnlessEqual(rqlst.as_string(),
   106         self.failUnlessEqual(rqlst.as_string(),
   107                              "Any S WHERE S owned_by C, C eid %(u)s, A eid %(B)s, "
   107                              "Any S WHERE S owned_by C, C eid %(u)s, S is IN(CWUser, CWGroup), A eid %(B)s, "
   108                              "EXISTS((C identity A) OR (C in_state D, E identity A, "
   108                              "EXISTS((C identity A) OR (C in_state D, E identity A, "
   109                              "E in_state D, D name 'subscribed'), D is State, E is CWUser), "
   109                              "E in_state D, D name 'subscribed'), D is State, E is CWUser)")
   110                              "S is IN(Affaire, Basket, Bookmark, CWAttribute, CWCache, CWConstraint, CWConstraintType, CWEType, CWGroup, CWPermission, CWProperty, CWRType, CWRelation, CWUser, Card, Comment, Division, Email, EmailAddress, EmailPart, EmailThread, ExternalUri, File, Folder, Image, Note, Personne, RQLExpression, Societe, State, SubDivision, Tag, TrInfo, Transition)")
       
   111 
   110 
   112     def test_simplified_rqlst(self):
   111     def test_simplified_rqlst(self):
   113         card_constraint = ('X in_state S, U in_group G, P require_state S,'
   112         card_constraint = ('X in_state S, U in_group G, P require_state S,'
   114                            'P name "read", P require_group G')
   113                            'P name "read", P require_group G')
   115         rqlst = parse('Any 2') # this is the simplified rql st for Any X WHERE X eid 12
   114         rqlst = parse('Any 2') # this is the simplified rql st for Any X WHERE X eid 12