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&D</b>') |
60 self.assertEqual(entity.description, u'<b>R&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'est <b>l'été") |
62 description_format=u'text/html', |
|
63 description=u"<div>c'est <b>l'été") |
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&D<p>yo</p>') |
74 self.assertEqual(entity.description, u'R&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,' |