103 rs.vreg = self.vreg |
103 rs.vreg = self.vreg |
104 |
104 |
105 self.assertEquals(rs.limit(2).rows, [[12000, 'adim'], [13000, 'syt']]) |
105 self.assertEquals(rs.limit(2).rows, [[12000, 'adim'], [13000, 'syt']]) |
106 rs2 = rs.limit(2, offset=1) |
106 rs2 = rs.limit(2, offset=1) |
107 self.assertEquals(rs2.rows, [[13000, 'syt'], [14000, 'nico']]) |
107 self.assertEquals(rs2.rows, [[13000, 'syt'], [14000, 'nico']]) |
108 self.assertEquals(rs2.get_entity(0, 0).row, 0) |
108 self.assertEquals(rs2.get_entity(0, 0).cw_row, 0) |
109 self.assertEquals(rs.limit(2, offset=2).rows, [[14000, 'nico']]) |
109 self.assertEquals(rs.limit(2, offset=2).rows, [[14000, 'nico']]) |
110 self.assertEquals(rs.limit(2, offset=3).rows, []) |
110 self.assertEquals(rs.limit(2, offset=3).rows, []) |
111 |
111 |
112 |
112 |
113 def test_resultset_filter(self): |
113 def test_resultset_filter(self): |
227 self.add_entity('Bookmark', title=u'zou', path=u'/view') |
227 self.add_entity('Bookmark', title=u'zou', path=u'/view') |
228 self.execute('SET X bookmarked_by Y WHERE X is Bookmark, Y login "anon"') |
228 self.execute('SET X bookmarked_by Y WHERE X is Bookmark, Y login "anon"') |
229 rset = self.execute('Any X,Y,XT,YN WHERE X bookmarked_by Y, X title XT, Y login YN') |
229 rset = self.execute('Any X,Y,XT,YN WHERE X bookmarked_by Y, X title XT, Y login YN') |
230 |
230 |
231 e = rset.get_entity(0, 0) |
231 e = rset.get_entity(0, 0) |
232 self.assertEquals(e.row, 0) |
232 self.assertEquals(e.cw_row, 0) |
233 self.assertEquals(e.col, 0) |
233 self.assertEquals(e.cw_col, 0) |
234 self.assertEquals(e['title'], 'zou') |
234 self.assertEquals(e['title'], 'zou') |
235 self.assertRaises(KeyError, e.__getitem__, 'path') |
235 self.assertRaises(KeyError, e.__getitem__, 'path') |
236 self.assertEquals(e.view('text'), 'zou') |
236 self.assertEquals(e.view('text'), 'zou') |
237 self.assertEquals(pprelcachedict(e._related_cache), []) |
237 self.assertEquals(pprelcachedict(e._related_cache), []) |
238 |
238 |
239 e = rset.get_entity(0, 1) |
239 e = rset.get_entity(0, 1) |
240 self.assertEquals(e.row, 0) |
240 self.assertEquals(e.cw_row, 0) |
241 self.assertEquals(e.col, 1) |
241 self.assertEquals(e.cw_col, 1) |
242 self.assertEquals(e['login'], 'anon') |
242 self.assertEquals(e['login'], 'anon') |
243 self.assertRaises(KeyError, e.__getitem__, 'firstname') |
243 self.assertRaises(KeyError, e.__getitem__, 'firstname') |
244 self.assertEquals(pprelcachedict(e._related_cache), |
244 self.assertEquals(pprelcachedict(e._related_cache), |
245 []) |
245 []) |
246 e.complete() |
246 e.complete() |
302 ' (Any X,N WHERE X is CWGroup, X name N))') |
302 ' (Any X,N WHERE X is CWGroup, X name N))') |
303 expected = (('CWGroup', 'guests'), ('CWGroup', 'managers'), |
303 expected = (('CWGroup', 'guests'), ('CWGroup', 'managers'), |
304 ('Bookmark', 'manger'), ('CWGroup', 'owners'), |
304 ('Bookmark', 'manger'), ('CWGroup', 'owners'), |
305 ('CWGroup', 'users')) |
305 ('CWGroup', 'users')) |
306 for entity in rset.entities(): # test get_entity for each row actually |
306 for entity in rset.entities(): # test get_entity for each row actually |
307 etype, n = expected[entity.row] |
307 etype, n = expected[entity.cw_row] |
308 self.assertEquals(entity.id, etype) |
308 self.assertEquals(entity.__regid__, etype) |
309 attr = etype == 'Bookmark' and 'title' or 'name' |
309 attr = etype == 'Bookmark' and 'title' or 'name' |
310 self.assertEquals(entity[attr], n) |
310 self.assertEquals(entity[attr], n) |
311 |
311 |
312 def test_related_entity_optional(self): |
312 def test_related_entity_optional(self): |
313 e = self.add_entity('Bookmark', title=u'aaaa', path=u'path') |
313 e = self.add_entity('Bookmark', title=u'aaaa', path=u'path') |
324 ' (Any X,N WHERE X is Bookmark, X title N))') |
324 ' (Any X,N WHERE X is Bookmark, X title N))') |
325 entity, rtype = rset.related_entity(0, 1) |
325 entity, rtype = rset.related_entity(0, 1) |
326 self.assertEquals(entity.eid, e.eid) |
326 self.assertEquals(entity.eid, e.eid) |
327 self.assertEquals(rtype, 'title') |
327 self.assertEquals(rtype, 'title') |
328 entity, rtype = rset.related_entity(1, 1) |
328 entity, rtype = rset.related_entity(1, 1) |
329 self.assertEquals(entity.id, 'CWGroup') |
329 self.assertEquals(entity.__regid__, 'CWGroup') |
330 self.assertEquals(rtype, 'name') |
330 self.assertEquals(rtype, 'name') |
331 # |
331 # |
332 rset = self.execute('Any X,N ORDERBY N WHERE X is Bookmark WITH X,N BEING ' |
332 rset = self.execute('Any X,N ORDERBY N WHERE X is Bookmark WITH X,N BEING ' |
333 '((Any X,N WHERE X is CWGroup, X name N)' |
333 '((Any X,N WHERE X is CWGroup, X name N)' |
334 ' UNION ' |
334 ' UNION ' |