server/test/unittest_ldapuser.py
changeset 4089 ff92c7d692bf
parent 3890 d7a270f50f54
child 4252 6c4f109c2b03
equal deleted inserted replaced
4088:23ce2b3fb03d 4089:ff92c7d692bf
    21 else:
    21 else:
    22     SYT = 'sthenault'
    22     SYT = 'sthenault'
    23     ADIM = 'adimascio'
    23     ADIM = 'adimascio'
    24 
    24 
    25 
    25 
    26 def nopwd_authenticate(self, session, login, upassword):
    26 def nopwd_authenticate(self, session, login, password):
    27     """used to monkey patch the source to get successful authentication without
    27     """used to monkey patch the source to get successful authentication without
    28     upassword checking
    28     upassword checking
    29     """
    29     """
    30     assert login, 'no login!'
    30     assert login, 'no login!'
    31     searchfilter = [filter_format('(%s=%s)', (self.user_login_attr, login))]
    31     searchfilter = [filter_format('(%s=%s)', (self.user_login_attr, login))]
   160         self.sexecute('SET X in_group G WHERE X login %(syt)s, G name "managers"', {'syt': SYT})
   160         self.sexecute('SET X in_group G WHERE X login %(syt)s, G name "managers"', {'syt': SYT})
   161         self.commit()
   161         self.commit()
   162         syt = self.sexecute('CWUser X WHERE X login %(login)s', {'login': SYT}).get_entity(0, 0)
   162         syt = self.sexecute('CWUser X WHERE X login %(login)s', {'login': SYT}).get_entity(0, 0)
   163         self.assertEquals([g.name for g in syt.in_group], ['managers', 'users'])
   163         self.assertEquals([g.name for g in syt.in_group], ['managers', 'users'])
   164         self.patch_authenticate()
   164         self.patch_authenticate()
   165         cnx = self.login(SYT, 'dummypassword')
   165         cnx = self.login(SYT, password='dummypassword')
   166         cu = cnx.cursor()
   166         cu = cnx.cursor()
   167         adim = cu.execute('CWUser X WHERE X login %(login)s', {'login': ADIM}).get_entity(0, 0)
   167         adim = cu.execute('CWUser X WHERE X login %(login)s', {'login': ADIM}).get_entity(0, 0)
   168         adim.fire_transition('deactivate')
   168         adim.fire_transition('deactivate')
   169         try:
   169         try:
   170             cnx.commit()
   170             cnx.commit()
   181         finally:
   181         finally:
   182             # restore db state
   182             # restore db state
   183             self.restore_connection()
   183             self.restore_connection()
   184             adim = self.sexecute('CWUser X WHERE X login %(login)s', {'login': ADIM}).get_entity(0, 0)
   184             adim = self.sexecute('CWUser X WHERE X login %(login)s', {'login': ADIM}).get_entity(0, 0)
   185             adim.fire_transition('activate')
   185             adim.fire_transition('activate')
   186             self.execute('DELETE X in_group G WHERE X login %(syt)s, G name "managers"', {'syt': SYT})
   186             self.sexecute('DELETE X in_group G WHERE X login %(syt)s, G name "managers"', {'syt': SYT})
   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', req=self.session)
   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.add_entity('CWGroup', name=u'bougloup1', req=self.session)
   196         self.session.set_pool()
   197         self.add_entity('CWGroup', name=u'bougloup2', req=self.session)
   197         self.session.create_entity('CWGroup', name=u'bougloup1')
       
   198         self.session.create_entity('CWGroup', name=u'bougloup2')
   198         self.sexecute('SET U in_group G WHERE G name ~= "bougloup%", U login "admin"')
   199         self.sexecute('SET U in_group G WHERE G name ~= "bougloup%", U login "admin"')
   199         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})
   200         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%")')
   201         self.assertEquals(rset.rows, [['admin', 'activated'], [SYT, 'activated']])
   202         self.assertEquals(rset.rows, [['admin', 'activated'], [SYT, 'activated']])
   202 
   203