server/test/unittest_ldapuser.py
changeset 7241 65d65da31356
parent 7121 c2badb6de3fe
child 7293 97505b798975
equal deleted inserted replaced
7240:6f5118b48d6a 7241:65d65da31356
   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, '
   345         rset = self.sexecute('(Any X WHERE X is State) UNION (Any X WHERE X is CWUser)')
   350         rset = self.sexecute('(Any X WHERE X is State) UNION (Any X WHERE X is CWUser)')
   346         self.assertEqual(sorted(r[0] for r in rset.rows),
   351         self.assertEqual(sorted(r[0] for r in rset.rows),
   347                           sorted(r[0] for r in afeids + ueids))
   352                           sorted(r[0] for r in afeids + ueids))
   348 
   353 
   349     def _init_security_test(self):
   354     def _init_security_test(self):
   350         self.create_user('iaminguestsgrouponly', groups=('guests',))
   355         req = self.request()
       
   356         self.create_user(req, 'iaminguestsgrouponly', groups=('guests',))
   351         cnx = self.login('iaminguestsgrouponly')
   357         cnx = self.login('iaminguestsgrouponly')
   352         return cnx.cursor()
   358         return cnx.cursor()
   353 
   359 
   354     def test_security1(self):
   360     def test_security1(self):
   355         cu = self._init_security_test()
   361         cu = self._init_security_test()