server/test/unittest_ldapuser.py
branchstable
changeset 5064 494ae4ad4a14
parent 5029 f7709d28fb79
child 5174 78438ad513ca
child 5421 8167de96c523
equal deleted inserted replaced
5063:2a94b61837e1 5064:494ae4ad4a14
   187 
   187 
   188     def test_same_column_names(self):
   188     def test_same_column_names(self):
   189         self.sexecute('Any X, Y WHERE X copain Y, X login "comme", Y login "cochon"')
   189         self.sexecute('Any X, Y WHERE X copain Y, X login "comme", Y login "cochon"')
   190 
   190 
   191     def test_multiple_entities_from_different_sources(self):
   191     def test_multiple_entities_from_different_sources(self):
   192         self.create_user('cochon', req=self.session)
   192         self.create_user('cochon')
   193         self.failUnless(self.sexecute('Any X,Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT}))
   193         self.failUnless(self.sexecute('Any X,Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT}))
   194 
   194 
   195     def test_exists1(self):
   195     def test_exists1(self):
   196         self.session.set_pool()
   196         self.session.set_pool()
   197         self.session.create_entity('CWGroup', name=u'bougloup1')
   197         self.session.create_entity('CWGroup', name=u'bougloup1')
   200         self.sexecute('SET U in_group G WHERE G name = "bougloup1", U login %(syt)s', {'syt': SYT})
   200         self.sexecute('SET U in_group G WHERE G name = "bougloup1", U login %(syt)s', {'syt': SYT})
   201         rset = self.sexecute('Any L,SN ORDERBY L WHERE X in_state S, S name SN, X login L, EXISTS(X in_group G, G name ~= "bougloup%")')
   201         rset = self.sexecute('Any L,SN ORDERBY L WHERE X in_state S, S name SN, X login L, EXISTS(X in_group G, G name ~= "bougloup%")')
   202         self.assertEquals(rset.rows, [['admin', 'activated'], [SYT, 'activated']])
   202         self.assertEquals(rset.rows, [['admin', 'activated'], [SYT, 'activated']])
   203 
   203 
   204     def test_exists2(self):
   204     def test_exists2(self):
   205         self.create_user('comme', req=self.session)
   205         self.create_user('comme')
   206         self.create_user('cochon', req=self.session)
   206         self.create_user('cochon')
   207         self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"')
   207         self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"')
   208         rset = self.sexecute('Any GN ORDERBY GN WHERE X in_group G, G name GN, (G name "managers" OR EXISTS(X copain T, T login in ("comme", "cochon")))')
   208         rset = self.sexecute('Any GN ORDERBY GN WHERE X in_group G, G name GN, (G name "managers" OR EXISTS(X copain T, T login in ("comme", "cochon")))')
   209         self.assertEquals(rset.rows, [['managers'], ['users']])
   209         self.assertEquals(rset.rows, [['managers'], ['users']])
   210 
   210 
   211     def test_exists3(self):
   211     def test_exists3(self):
   212         self.create_user('comme', req=self.session)
   212         self.create_user('comme')
   213         self.create_user('cochon', req=self.session)
   213         self.create_user('cochon')
   214         self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"')
   214         self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"')
   215         self.failUnless(self.sexecute('Any X, Y WHERE X copain Y, X login "comme", Y login "cochon"'))
   215         self.failUnless(self.sexecute('Any X, Y WHERE X copain Y, X login "comme", Y login "cochon"'))
   216         self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT})
   216         self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT})
   217         self.failUnless(self.sexecute('Any X, Y WHERE X copain Y, X login %(syt)s, Y login "cochon"', {'syt': SYT}))
   217         self.failUnless(self.sexecute('Any X, Y WHERE X copain Y, X login %(syt)s, Y login "cochon"', {'syt': SYT}))
   218         rset = self.sexecute('Any GN,L WHERE X in_group G, X login L, G name GN, G name "managers" OR EXISTS(X copain T, T login in ("comme", "cochon"))')
   218         rset = self.sexecute('Any GN,L WHERE X in_group G, X login L, G name GN, G name "managers" OR EXISTS(X copain T, T login in ("comme", "cochon"))')
   219         self.assertEquals(sorted(rset.rows), [['managers', 'admin'], ['users', 'comme'], ['users', SYT]])
   219         self.assertEquals(sorted(rset.rows), [['managers', 'admin'], ['users', 'comme'], ['users', SYT]])
   220 
   220 
   221     def test_exists4(self):
   221     def test_exists4(self):
   222         self.create_user('comme', req=self.session)
   222         self.create_user('comme')
   223         self.create_user('cochon', groups=('users', 'guests'), req=self.session)
   223         self.create_user('cochon', groups=('users', 'guests'))
   224         self.create_user('billy', req=self.session)
   224         self.create_user('billy')
   225         self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"')
   225         self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"')
   226         self.sexecute('SET X copain Y WHERE X login "cochon", Y login "cochon"')
   226         self.sexecute('SET X copain Y WHERE X login "cochon", Y login "cochon"')
   227         self.sexecute('SET X copain Y WHERE X login "comme", Y login "billy"')
   227         self.sexecute('SET X copain Y WHERE X login "comme", Y login "billy"')
   228         self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "billy"', {'syt': SYT})
   228         self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "billy"', {'syt': SYT})
   229         # search for group name, login where
   229         # search for group name, login where
   239         all.rows.remove(['users', 'comme'])
   239         all.rows.remove(['users', 'comme'])
   240         all.rows.remove(['users', SYT])
   240         all.rows.remove(['users', SYT])
   241         self.assertEquals(sorted(rset.rows), sorted(all.rows))
   241         self.assertEquals(sorted(rset.rows), sorted(all.rows))
   242 
   242 
   243     def test_exists5(self):
   243     def test_exists5(self):
   244         self.create_user('comme', req=self.session)
   244         self.create_user('comme')
   245         self.create_user('cochon', groups=('users', 'guests'), req=self.session)
   245         self.create_user('cochon', groups=('users', 'guests'))
   246         self.create_user('billy', req=self.session)
   246         self.create_user('billy')
   247         self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"')
   247         self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"')
   248         self.sexecute('SET X copain Y WHERE X login "cochon", Y login "cochon"')
   248         self.sexecute('SET X copain Y WHERE X login "cochon", Y login "cochon"')
   249         self.sexecute('SET X copain Y WHERE X login "comme", Y login "billy"')
   249         self.sexecute('SET X copain Y WHERE X login "comme", Y login "billy"')
   250         self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT})
   250         self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT})
   251         rset= self.sexecute('Any L WHERE X login L, '
   251         rset= self.sexecute('Any L WHERE X login L, '
   271         rset = self.sexecute('(Any X WHERE X is State) UNION (Any X WHERE X is CWUser)')
   271         rset = self.sexecute('(Any X WHERE X is State) UNION (Any X WHERE X is CWUser)')
   272         self.assertEquals(sorted(r[0] for r in rset.rows),
   272         self.assertEquals(sorted(r[0] for r in rset.rows),
   273                           sorted(r[0] for r in afeids + ueids))
   273                           sorted(r[0] for r in afeids + ueids))
   274 
   274 
   275     def _init_security_test(self):
   275     def _init_security_test(self):
   276         self.create_user('iaminguestsgrouponly', groups=('guests',), req=self.session)
   276         self.create_user('iaminguestsgrouponly', groups=('guests',))
   277         cnx = self.login('iaminguestsgrouponly')
   277         cnx = self.login('iaminguestsgrouponly')
   278         return cnx.cursor()
   278         return cnx.cursor()
   279 
   279 
   280     def test_security1(self):
   280     def test_security1(self):
   281         cu = self._init_security_test()
   281         cu = self._init_security_test()