127 "Any S WHERE S documented_by C, C eid %(u)s, B eid %(D)s, " |
127 "Any S WHERE S documented_by C, C eid %(u)s, B eid %(D)s, " |
128 "EXISTS(C in_state A, B in_group E, F require_state A, " |
128 "EXISTS(C in_state A, B in_group E, F require_state A, " |
129 "F name 'read', F require_group E, A is State, E is CWGroup, F is CWPermission), " |
129 "F name 'read', F require_group E, A is State, E is CWGroup, F is CWPermission), " |
130 "(EXISTS(S ref LIKE 'PUBLIC%')) OR (EXISTS(B in_group G, G name 'public', G is CWGroup)), " |
130 "(EXISTS(S ref LIKE 'PUBLIC%')) OR (EXISTS(B in_group G, G name 'public', G is CWGroup)), " |
131 "S is Affaire") |
131 "S is Affaire") |
132 self.assertTrue('D' in kwargs) |
132 self.assertIn('D', kwargs) |
133 |
133 |
134 def test_or(self): |
134 def test_or(self): |
135 constraint = '(X identity U) OR (X in_state ST, CL identity U, CL in_state ST, ST name "subscribed")' |
135 constraint = '(X identity U) OR (X in_state ST, CL identity U, CL in_state ST, ST name "subscribed")' |
136 rqlst = parse('Any S WHERE S owned_by C, C eid %(u)s, S is in (CWUser, CWGroup)') |
136 rqlst = parse('Any S WHERE S owned_by C, C eid %(u)s, S is in (CWUser, CWGroup)') |
137 rewrite(rqlst, {('C', 'X'): (constraint,)}, {'u':1}) |
137 rewrite(rqlst, {('C', 'X'): (constraint,)}, {'u':1}) |