server/test/unittest_ldapsource.py
changeset 8921 da46624a0880
parent 8917 685b93559e33
child 8922 715b9eec6da9
equal deleted inserted replaced
8920:386049566ceb 8921:da46624a0880
   224         self.assertEqual(e.login, 'syt')
   224         self.assertEqual(e.login, 'syt')
   225         e.complete()
   225         e.complete()
   226         self.assertMetadata(e)
   226         self.assertMetadata(e)
   227         self.assertEqual(e.firstname, None)
   227         self.assertEqual(e.firstname, None)
   228         self.assertEqual(e.surname, None)
   228         self.assertEqual(e.surname, None)
   229         self.assertEqual(e.in_group[0].name, 'users')
   229         self.assertTrue('users' in [g.name for g in e.in_group])
   230         self.assertEqual(e.owned_by[0].login, 'syt')
   230         self.assertEqual(e.owned_by[0].login, 'syt')
   231         self.assertEqual(e.created_by, ())
   231         self.assertEqual(e.created_by, ())
   232         addresses = [pe.address for pe in e.use_email]
   232         addresses = [pe.address for pe in e.use_email]
   233         addresses.sort()
   233         addresses.sort()
   234         self.assertEqual(['sylvain.thenault@logilab.fr', 'syt@logilab.fr'],
   234         self.assertEqual(['sylvain.thenault@logilab.fr', 'syt@logilab.fr'],
   238         # email content should be indexed on the user
   238         # email content should be indexed on the user
   239         rset = self.sexecute('CWUser X WHERE X has_text "thenault"')
   239         rset = self.sexecute('CWUser X WHERE X has_text "thenault"')
   240         self.assertEqual(rset.rows, [[e.eid]])
   240         self.assertEqual(rset.rows, [[e.eid]])
   241 
   241 
   242     def test_copy_to_system_source(self):
   242     def test_copy_to_system_source(self):
       
   243         "make sure we can 'convert' an LDAP user into a system one"
   243         source = self.repo.sources_by_uri['ldap']
   244         source = self.repo.sources_by_uri['ldap']
   244         eid = self.sexecute('CWUser X WHERE X login %(login)s', {'login': 'syt'})[0][0]
   245         eid = self.sexecute('CWUser X WHERE X login %(login)s', {'login': 'syt'})[0][0]
   245         self.sexecute('SET X cw_source S WHERE X eid %(x)s, S name "system"', {'x': eid})
   246         self.sexecute('SET X cw_source S WHERE X eid %(x)s, S name "system"', {'x': eid})
   246         self.commit()
   247         self.commit()
   247         source.reset_caches()
   248         source.reset_caches()
   260         source.pull_data(self.session)
   261         source.pull_data(self.session)
   261         rset = self.sexecute('CWUser X WHERE X login %(login)s', {'login': 'syt'})
   262         rset = self.sexecute('CWUser X WHERE X login %(login)s', {'login': 'syt'})
   262         self.assertEqual(len(rset), 1)
   263         self.assertEqual(len(rset), 1)
   263         self.assertTrue(self.repo.system_source.authenticate(
   264         self.assertTrue(self.repo.system_source.authenticate(
   264                 self.session, 'syt', password='syt'))
   265                 self.session, 'syt', password='syt'))
       
   266         # make sure the pull from ldap have not "reverted" user as a ldap-feed user
       
   267         self.assertEqual(e.cw_metainformation(), {'source': {'type': u'native',
       
   268                                                              'uri': u'system',
       
   269                                                              'use-cwuri-as-url': False},
       
   270                                                   'type': 'CWUser',
       
   271                                                   'extid': None})
       
   272         # and that the password stored in the system source is not empty or so
       
   273         user = self.execute('CWUser U WHERE U login "syt"').get_entity(0, 0)
       
   274         user.cw_clear_all_caches()
       
   275         pwd = self.session.system_sql("SELECT cw_upassword FROM cw_cwuser WHERE cw_login='syt';").fetchall()[0][0]
       
   276         self.assertIsNotNone(pwd)
       
   277         self.assertTrue(str(pwd))
       
   278 
   265 
   279 
   266 
   280 
   267 class LDAPFeedUserDeletionTC(LDAPFeedTestBase):
   281 class LDAPFeedUserDeletionTC(LDAPFeedTestBase):
   268     """
   282     """
   269     A testcase for situations where users are deleted from or
   283     A testcase for situations where users are deleted from or