138 |
138 |
139 def test_related_cache_both(self): |
139 def test_related_cache_both(self): |
140 with self.admin_access.web_request() as req: |
140 with self.admin_access.web_request() as req: |
141 user = req.execute('Any X WHERE X eid %(x)s', {'x':req.user.eid}).get_entity(0, 0) |
141 user = req.execute('Any X WHERE X eid %(x)s', {'x':req.user.eid}).get_entity(0, 0) |
142 adeleid = req.execute('INSERT EmailAddress X: X address "toto@logilab.org", U use_email X WHERE U login "admin"')[0][0] |
142 adeleid = req.execute('INSERT EmailAddress X: X address "toto@logilab.org", U use_email X WHERE U login "admin"')[0][0] |
|
143 self.assertEqual({}, user._cw_related_cache) |
143 req.cnx.commit() |
144 req.cnx.commit() |
144 self.assertEqual(user._cw_related_cache, {}) |
145 self.assertEqual(['primary_email_subject', 'use_email_subject', 'wf_info_for_object'], |
|
146 sorted(user._cw_related_cache)) |
145 email = user.primary_email[0] |
147 email = user.primary_email[0] |
146 self.assertEqual(sorted(user._cw_related_cache), ['primary_email_subject']) |
148 self.assertEqual(u'toto@logilab.org', email.address) |
147 self.assertEqual(list(email._cw_related_cache), ['primary_email_object']) |
149 self.assertEqual(['created_by_subject', |
|
150 'cw_source_subject', |
|
151 'is_instance_of_subject', |
|
152 'is_subject', |
|
153 'owned_by_subject', |
|
154 'prefered_form_object', |
|
155 'prefered_form_subject', |
|
156 'primary_email_object', |
|
157 'use_email_object'], |
|
158 sorted(email._cw_related_cache)) |
|
159 self.assertEqual('admin', email._cw_related_cache['primary_email_object'][1][0].login) |
148 groups = user.in_group |
160 groups = user.in_group |
149 self.assertEqual(sorted(user._cw_related_cache), ['in_group_subject', 'primary_email_subject']) |
|
150 for group in groups: |
161 for group in groups: |
151 self.assertNotIn('in_group_subject', group._cw_related_cache) |
162 self.assertNotIn('in_group_subject', group._cw_related_cache) |
152 user.cw_clear_all_caches() |
163 user.cw_clear_all_caches() |
153 user.related('in_group', entities=True) |
164 user.related('in_group', entities=True) |
154 self.assertIn('in_group_subject', user._cw_related_cache) |
165 self.assertIn('in_group_subject', user._cw_related_cache) |