hooks/test/unittest_hooks.py
branchstable
changeset 7255 cbd7b2f49dc9
parent 7245 2f72b958ae22
child 7791 31bb51ea5485
equal deleted inserted replaced
7239:078cfa8a5187 7255:cbd7b2f49dc9
    40         rset = self.execute('Any S WHERE X sender S, X eid %s' % eeid)
    40         rset = self.execute('Any S WHERE X sender S, X eid %s' % eeid)
    41         self.assertEqual(len(rset), 1)
    41         self.assertEqual(len(rset), 1)
    42 
    42 
    43     def test_html_tidy_hook(self):
    43     def test_html_tidy_hook(self):
    44         req = self.request()
    44         req = self.request()
    45         entity = req.create_entity('Workflow', name=u'wf1', description_format=u'text/html',
    45         entity = req.create_entity('Workflow', name=u'wf1',
    46                                  description=u'yo')
    46                                    description_format=u'text/html',
       
    47                                    description=u'yo')
    47         self.assertEqual(entity.description, u'yo')
    48         self.assertEqual(entity.description, u'yo')
    48         entity = req.create_entity('Workflow', name=u'wf2', description_format=u'text/html',
    49         entity = req.create_entity('Workflow', name=u'wf2',
    49                                  description=u'<b>yo')
    50                                    description_format=u'text/html',
       
    51                                    description=u'<b>yo')
    50         self.assertEqual(entity.description, u'<b>yo</b>')
    52         self.assertEqual(entity.description, u'<b>yo</b>')
    51         entity = req.create_entity('Workflow', name=u'wf3', description_format=u'text/html',
    53         entity = req.create_entity('Workflow', name=u'wf3',
    52                                  description=u'<b>yo</b>')
    54                                    description_format=u'text/html',
       
    55                                    description=u'<b>yo</b>')
    53         self.assertEqual(entity.description, u'<b>yo</b>')
    56         self.assertEqual(entity.description, u'<b>yo</b>')
    54         entity = req.create_entity('Workflow', name=u'wf4', description_format=u'text/html',
    57         entity = req.create_entity('Workflow', name=u'wf4',
    55                                  description=u'<b>R&D</b>')
    58                                    description_format=u'text/html',
       
    59                                    description=u'<b>R&D</b>')
    56         self.assertEqual(entity.description, u'<b>R&amp;D</b>')
    60         self.assertEqual(entity.description, u'<b>R&amp;D</b>')
    57         entity = req.create_entity('Workflow', name=u'wf5', description_format=u'text/html',
    61         entity = req.create_entity('Workflow', name=u'wf5',
    58                                  description=u"<div>c&apos;est <b>l'ét&eacute;")
    62                                    description_format=u'text/html',
       
    63                                    description=u"<div>c&apos;est <b>l'ét&eacute;")
    59         self.assertEqual(entity.description, u"<div>c'est <b>l'été</b></div>")
    64         self.assertEqual(entity.description, u"<div>c'est <b>l'été</b></div>")
    60 
    65 
    61     def test_nonregr_html_tidy_hook_no_update(self):
    66     def test_nonregr_html_tidy_hook_no_update(self):
    62         entity = self.request().create_entity('Workflow', name=u'wf1', description_format=u'text/html',
    67         entity = self.request().create_entity('Workflow', name=u'wf1',
    63                                  description=u'yo')
    68                                               description_format=u'text/html',
       
    69                                               description=u'yo')
    64         entity.set_attributes(name=u'wf2')
    70         entity.set_attributes(name=u'wf2')
    65         self.assertEqual(entity.description, u'yo')
    71         self.assertEqual(entity.description, u'yo')
    66         entity.set_attributes(description=u'R&D<p>yo')
    72         entity.set_attributes(description=u'R&D<p>yo')
    67         entity.cw_attr_cache.pop('description')
    73         entity.cw_attr_cache.pop('description')
    68         self.assertEqual(entity.description, u'R&amp;D<p>yo</p>')
    74         self.assertEqual(entity.description, u'R&amp;D<p>yo</p>')
    88         self.commit() # fire operations
    94         self.commit() # fire operations
    89         self.assertEqual(len(entity.owned_by), 1) # make sure we have only one owner
    95         self.assertEqual(len(entity.owned_by), 1) # make sure we have only one owner
    90         self.assertEqual(entity.owned_by[0].eid, self.session.user.eid)
    96         self.assertEqual(entity.owned_by[0].eid, self.session.user.eid)
    91 
    97 
    92     def test_user_login_stripped(self):
    98     def test_user_login_stripped(self):
    93         u = self.create_user('  joe  ')
    99         req = self.request()
       
   100         u = self.create_user(req, '  joe  ')
    94         tname = self.execute('Any L WHERE E login L, E eid %(e)s',
   101         tname = self.execute('Any L WHERE E login L, E eid %(e)s',
    95                              {'e': u.eid})[0][0]
   102                              {'e': u.eid})[0][0]
    96         self.assertEqual(tname, 'joe')
   103         self.assertEqual(tname, 'joe')
    97         self.execute('SET X login " jijoe " WHERE X eid %(x)s', {'x': u.eid})
   104         self.execute('SET X login " jijoe " WHERE X eid %(x)s', {'x': u.eid})
    98         tname = self.execute('Any L WHERE E login L, E eid %(e)s',
   105         tname = self.execute('Any L WHERE E login L, E eid %(e)s',
   102 
   109 
   103 
   110 
   104 class UserGroupHooksTC(CubicWebTC):
   111 class UserGroupHooksTC(CubicWebTC):
   105 
   112 
   106     def test_user_synchronization(self):
   113     def test_user_synchronization(self):
   107         self.create_user('toto', password='hop', commit=False)
   114         req = self.request()
       
   115         self.create_user(req, 'toto', password='hop', commit=False)
   108         self.assertRaises(AuthenticationError,
   116         self.assertRaises(AuthenticationError,
   109                           self.repo.connect, u'toto', password='hop')
   117                           self.repo.connect, u'toto', password='hop')
   110         self.commit()
   118         self.commit()
   111         cnxid = self.repo.connect(u'toto', password='hop')
   119         cnxid = self.repo.connect(u'toto', password='hop')
   112         self.failIfEqual(cnxid, self.session.id)
   120         self.failIfEqual(cnxid, self.session.id)
   127         self.assertEqual(user.groups, set(('managers', 'guests')))
   135         self.assertEqual(user.groups, set(('managers', 'guests')))
   128         self.commit()
   136         self.commit()
   129         self.assertEqual(user.groups, set(('managers',)))
   137         self.assertEqual(user.groups, set(('managers',)))
   130 
   138 
   131     def test_user_composite_owner(self):
   139     def test_user_composite_owner(self):
   132         ueid = self.create_user('toto').eid
   140         req = self.request()
       
   141         ueid = self.create_user(req, 'toto').eid
   133         # composite of euser should be owned by the euser regardless of who created it
   142         # composite of euser should be owned by the euser regardless of who created it
   134         self.execute('INSERT EmailAddress X: X address "toto@logilab.fr", U use_email X '
   143         self.execute('INSERT EmailAddress X: X address "toto@logilab.fr", U use_email X '
   135                      'WHERE U login "toto"')
   144                      'WHERE U login "toto"')
   136         self.commit()
   145         self.commit()
   137         self.assertEqual(self.execute('Any A WHERE X owned_by U, U use_email X,'
   146         self.assertEqual(self.execute('Any A WHERE X owned_by U, U use_email X,'