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'), |