cubicweb/test/unittest_rset.py
changeset 11171 b81e543e623a
parent 11169 c1eb5a676c80
child 11870 3a84a79c4ed5
equal deleted inserted replaced
11170:d034791621ad 11171:b81e543e623a
   358             # second level of recursion
   358             # second level of recursion
   359             s = u.in_state[0]
   359             s = u.in_state[0]
   360             self.assertEqual(s.cw_attr_cache['name'], 'activated')
   360             self.assertEqual(s.cw_attr_cache['name'], 'activated')
   361             self.assertRaises(KeyError, s.cw_attr_cache.__getitem__, 'description')
   361             self.assertRaises(KeyError, s.cw_attr_cache.__getitem__, 'description')
   362 
   362 
       
   363     def test_get_entity_recursion(self):
       
   364         with self.admin_access.repo_cnx() as cnx:
       
   365             cnx.create_entity('EmailAddress', address=u'toto',
       
   366                               reverse_primary_email=cnx.user.eid)
       
   367             cnx.commit()
       
   368 
       
   369         # get_entity should fill the caches for user and email, even if both
       
   370         # entities are already in the connection's entity cache
       
   371         with self.admin_access.repo_cnx() as cnx:
       
   372             mail = cnx.find('EmailAddress').one()
       
   373             rset = cnx.execute('Any X, E WHERE X primary_email E')
       
   374             u = rset.get_entity(0, 0)
       
   375             self.assertTrue(u.cw_relation_cached('primary_email', 'subject'))
       
   376             self.assertTrue(mail.cw_relation_cached('primary_email', 'object'))
       
   377 
       
   378         with self.admin_access.repo_cnx() as cnx:
       
   379             mail = cnx.find('EmailAddress').one()
       
   380             rset = cnx.execute('Any X, E WHERE X primary_email E')
       
   381             rset.get_entity(0, 1)
       
   382             self.assertTrue(mail.cw_relation_cached('primary_email', 'object'))
       
   383             u = cnx.user
       
   384             self.assertTrue(u.cw_relation_cached('primary_email', 'subject'))
       
   385 
   363 
   386 
   364     def test_get_entity_cache_with_left_outer_join(self):
   387     def test_get_entity_cache_with_left_outer_join(self):
   365         with self.admin_access.web_request() as req:
   388         with self.admin_access.web_request() as req:
   366             eid = req.execute('INSERT CWUser E: E login "joe", E upassword "joe", E in_group G '
   389             eid = req.execute('INSERT CWUser E: E login "joe", E upassword "joe", E in_group G '
   367                                'WHERE G name "users"')[0][0]
   390                                'WHERE G name "users"')[0][0]