test/unittest_rset.py
changeset 3418 7b49fa7e942d
parent 3023 7864fee8b4ec
child 3589 a5432f99f2d9
equal deleted inserted replaced
3412:368c68ffb99e 3418:7b49fa7e942d
   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 '