test/unittest_rset.py
changeset 10997 da712d3f0601
parent 10722 1d0b5aef7523
equal deleted inserted replaced
10996:dc572d116731 10997:da712d3f0601
   283 
   283 
   284     def test_get_entity_simple(self):
   284     def test_get_entity_simple(self):
   285         with self.admin_access.web_request() as req:
   285         with self.admin_access.web_request() as req:
   286             req.create_entity('CWUser', login=u'adim', upassword='adim',
   286             req.create_entity('CWUser', login=u'adim', upassword='adim',
   287                                          surname=u'di mascio', firstname=u'adrien')
   287                                          surname=u'di mascio', firstname=u'adrien')
   288             req.cnx.drop_entity_cache()
   288             req.drop_entity_cache()
   289             e = req.execute('Any X,T WHERE X login "adim", X surname T').get_entity(0, 0)
   289             e = req.execute('Any X,T WHERE X login "adim", X surname T').get_entity(0, 0)
   290             self.assertEqual(e.cw_attr_cache['surname'], 'di mascio')
   290             self.assertEqual(e.cw_attr_cache['surname'], 'di mascio')
   291             self.assertRaises(KeyError, e.cw_attr_cache.__getitem__, 'firstname')
   291             self.assertRaises(KeyError, e.cw_attr_cache.__getitem__, 'firstname')
   292             self.assertRaises(KeyError, e.cw_attr_cache.__getitem__, 'creation_date')
   292             self.assertRaises(KeyError, e.cw_attr_cache.__getitem__, 'creation_date')
   293             self.assertEqual(pprelcachedict(e._cw_related_cache), [])
   293             self.assertEqual(pprelcachedict(e._cw_related_cache), [])
   296             self.assertEqual(pprelcachedict(e._cw_related_cache), [])
   296             self.assertEqual(pprelcachedict(e._cw_related_cache), [])
   297 
   297 
   298     def test_get_entity_advanced(self):
   298     def test_get_entity_advanced(self):
   299         with self.admin_access.web_request() as req:
   299         with self.admin_access.web_request() as req:
   300             req.create_entity('Bookmark', title=u'zou', path=u'/view')
   300             req.create_entity('Bookmark', title=u'zou', path=u'/view')
   301             req.cnx.drop_entity_cache()
   301             req.drop_entity_cache()
   302             req.execute('SET X bookmarked_by Y WHERE X is Bookmark, Y login "anon"')
   302             req.execute('SET X bookmarked_by Y WHERE X is Bookmark, Y login "anon"')
   303             rset = req.execute('Any X,Y,XT,YN WHERE X bookmarked_by Y, X title XT, Y login YN')
   303             rset = req.execute('Any X,Y,XT,YN WHERE X bookmarked_by Y, X title XT, Y login YN')
   304 
   304 
   305             e = rset.get_entity(0, 0)
   305             e = rset.get_entity(0, 0)
   306             self.assertEqual(e.cw_row, 0)
   306             self.assertEqual(e.cw_row, 0)
   343             rset = req.execute('Any X,U,S,XT,UL,SN WHERE X created_by U, U in_state S, '
   343             rset = req.execute('Any X,U,S,XT,UL,SN WHERE X created_by U, U in_state S, '
   344                                 'X title XT, S name SN, U login UL, X eid %s' % e.eid)
   344                                 'X title XT, S name SN, U login UL, X eid %s' % e.eid)
   345             e = rset.get_entity(0, 0)
   345             e = rset.get_entity(0, 0)
   346             self.assertEqual(e.cw_attr_cache['title'], 'zou')
   346             self.assertEqual(e.cw_attr_cache['title'], 'zou')
   347             self.assertEqual(pprelcachedict(e._cw_related_cache),
   347             self.assertEqual(pprelcachedict(e._cw_related_cache),
   348                               [('created_by_subject', [req.user.eid])])
   348                              [('created_by_subject', [req.user.eid])])
   349             # first level of recursion
   349             # first level of recursion
   350             u = e.created_by[0]
   350             u = e.created_by[0]
   351             self.assertEqual(u.cw_attr_cache['login'], 'admin')
   351             self.assertEqual(u.cw_attr_cache['login'], 'admin')
   352             self.assertRaises(KeyError, u.cw_attr_cache.__getitem__, 'firstname')
   352             self.assertRaises(KeyError, u.cw_attr_cache.__getitem__, 'firstname')
   353             # second level of recursion
   353             # second level of recursion
   372 
   372 
   373 
   373 
   374     def test_get_entity_union(self):
   374     def test_get_entity_union(self):
   375         with self.admin_access.web_request() as req:
   375         with self.admin_access.web_request() as req:
   376             e = req.create_entity('Bookmark', title=u'manger', path=u'path')
   376             e = req.create_entity('Bookmark', title=u'manger', path=u'path')
   377             req.cnx.drop_entity_cache()
   377             req.drop_entity_cache()
   378             rset = req.execute('Any X,N ORDERBY N WITH X,N BEING '
   378             rset = req.execute('Any X,N ORDERBY N WITH X,N BEING '
   379                                 '((Any X,N WHERE X is Bookmark, X title N)'
   379                                 '((Any X,N WHERE X is Bookmark, X title N)'
   380                                 ' UNION '
   380                                 ' UNION '
   381                                 ' (Any X,N WHERE X is CWGroup, X name N))')
   381                                 ' (Any X,N WHERE X is CWGroup, X name N))')
   382             expected = (('CWGroup', 'guests'), ('CWGroup', 'managers'),
   382             expected = (('CWGroup', 'guests'), ('CWGroup', 'managers'),