258 |
258 |
259 def test_same_column_names(self): |
259 def test_same_column_names(self): |
260 self.sexecute('Any X, Y WHERE X copain Y, X login "comme", Y login "cochon"') |
260 self.sexecute('Any X, Y WHERE X copain Y, X login "comme", Y login "cochon"') |
261 |
261 |
262 def test_multiple_entities_from_different_sources(self): |
262 def test_multiple_entities_from_different_sources(self): |
263 self.create_user('cochon') |
263 req = self.request() |
|
264 self.create_user(req, 'cochon') |
264 self.failUnless(self.sexecute('Any X,Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT})) |
265 self.failUnless(self.sexecute('Any X,Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT})) |
265 |
266 |
266 def test_exists1(self): |
267 def test_exists1(self): |
267 self.session.set_pool() |
268 self.session.set_pool() |
268 self.session.create_entity('CWGroup', name=u'bougloup1') |
269 self.session.create_entity('CWGroup', name=u'bougloup1') |
272 rset = self.sexecute('Any L,SN ORDERBY L WHERE X in_state S, ' |
273 rset = self.sexecute('Any L,SN ORDERBY L WHERE X in_state S, ' |
273 'S name SN, X login L, EXISTS(X in_group G, G name ~= "bougloup%")') |
274 'S name SN, X login L, EXISTS(X in_group G, G name ~= "bougloup%")') |
274 self.assertEqual(rset.rows, [['admin', 'activated'], [SYT, 'activated']]) |
275 self.assertEqual(rset.rows, [['admin', 'activated'], [SYT, 'activated']]) |
275 |
276 |
276 def test_exists2(self): |
277 def test_exists2(self): |
277 self.create_user('comme') |
278 req = self.request() |
278 self.create_user('cochon') |
279 self.create_user(req, 'comme') |
|
280 self.create_user(req, 'cochon') |
279 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
281 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
280 rset = self.sexecute('Any GN ORDERBY GN WHERE X in_group G, G name GN, ' |
282 rset = self.sexecute('Any GN ORDERBY GN WHERE X in_group G, G name GN, ' |
281 '(G name "managers" OR EXISTS(X copain T, T login in ("comme", "cochon")))') |
283 '(G name "managers" OR EXISTS(X copain T, T login in ("comme", "cochon")))') |
282 self.assertEqual(rset.rows, [['managers'], ['users']]) |
284 self.assertEqual(rset.rows, [['managers'], ['users']]) |
283 |
285 |
284 def test_exists3(self): |
286 def test_exists3(self): |
285 self.create_user('comme') |
287 req = self.request() |
286 self.create_user('cochon') |
288 self.create_user(req, 'comme') |
|
289 self.create_user(req, 'cochon') |
287 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
290 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
288 self.failUnless(self.sexecute('Any X, Y WHERE X copain Y, X login "comme", Y login "cochon"')) |
291 self.failUnless(self.sexecute('Any X, Y WHERE X copain Y, X login "comme", Y login "cochon"')) |
289 self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT}) |
292 self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT}) |
290 self.failUnless(self.sexecute('Any X, Y WHERE X copain Y, X login %(syt)s, Y login "cochon"', {'syt': SYT})) |
293 self.failUnless(self.sexecute('Any X, Y WHERE X copain Y, X login %(syt)s, Y login "cochon"', {'syt': SYT})) |
291 rset = self.sexecute('Any GN,L WHERE X in_group G, X login L, G name GN, G name "managers" ' |
294 rset = self.sexecute('Any GN,L WHERE X in_group G, X login L, G name GN, G name "managers" ' |
292 'OR EXISTS(X copain T, T login in ("comme", "cochon"))') |
295 'OR EXISTS(X copain T, T login in ("comme", "cochon"))') |
293 self.assertEqual(sorted(rset.rows), [['managers', 'admin'], ['users', 'comme'], ['users', SYT]]) |
296 self.assertEqual(sorted(rset.rows), [['managers', 'admin'], ['users', 'comme'], ['users', SYT]]) |
294 |
297 |
295 def test_exists4(self): |
298 def test_exists4(self): |
296 self.create_user('comme') |
299 req = self.request() |
297 self.create_user('cochon', groups=('users', 'guests')) |
300 self.create_user(req, 'comme') |
298 self.create_user('billy') |
301 self.create_user(req, 'cochon', groups=('users', 'guests')) |
|
302 self.create_user(req, 'billy') |
299 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
303 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
300 self.sexecute('SET X copain Y WHERE X login "cochon", Y login "cochon"') |
304 self.sexecute('SET X copain Y WHERE X login "cochon", Y login "cochon"') |
301 self.sexecute('SET X copain Y WHERE X login "comme", Y login "billy"') |
305 self.sexecute('SET X copain Y WHERE X login "comme", Y login "billy"') |
302 self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "billy"', {'syt': SYT}) |
306 self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "billy"', {'syt': SYT}) |
303 # search for group name, login where |
307 # search for group name, login where |
313 all.rows.remove(['users', 'comme']) |
317 all.rows.remove(['users', 'comme']) |
314 all.rows.remove(['users', SYT]) |
318 all.rows.remove(['users', SYT]) |
315 self.assertEqual(sorted(rset.rows), sorted(all.rows)) |
319 self.assertEqual(sorted(rset.rows), sorted(all.rows)) |
316 |
320 |
317 def test_exists5(self): |
321 def test_exists5(self): |
318 self.create_user('comme') |
322 req = self.request() |
319 self.create_user('cochon', groups=('users', 'guests')) |
323 self.create_user(req, 'comme') |
320 self.create_user('billy') |
324 self.create_user(req, 'cochon', groups=('users', 'guests')) |
|
325 self.create_user(req, 'billy') |
321 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
326 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
322 self.sexecute('SET X copain Y WHERE X login "cochon", Y login "cochon"') |
327 self.sexecute('SET X copain Y WHERE X login "cochon", Y login "cochon"') |
323 self.sexecute('SET X copain Y WHERE X login "comme", Y login "billy"') |
328 self.sexecute('SET X copain Y WHERE X login "comme", Y login "billy"') |
324 self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT}) |
329 self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT}) |
325 rset= self.sexecute('Any L WHERE X login L, ' |
330 rset= self.sexecute('Any L WHERE X login L, ' |