cubicweb/test/unittest_rset.py
changeset 12301 73634b5447e2
parent 12300 253fb20bc883
child 12304 c1538e5ac532
equal deleted inserted replaced
12300:253fb20bc883 12301:73634b5447e2
   442                 firstname=u'adrien')
   442                 firstname=u'adrien')
   443 
   443 
   444             with self.assertRaises(MultipleResultsError):
   444             with self.assertRaises(MultipleResultsError):
   445                 req.execute('Any X WHERE X is CWUser').one()
   445                 req.execute('Any X WHERE X is CWUser').one()
   446 
   446 
       
   447     def test_first(self):
       
   448         with self.admin_access.web_request() as req:
       
   449             req.create_entity('CWUser',
       
   450                               login=u'cdevienne',
       
   451                               upassword=u'cdevienne',
       
   452                               surname=u'de Vienne',
       
   453                               firstname=u'Christophe')
       
   454             e = req.execute('Any X WHERE X login "cdevienne"').first()
       
   455             self.assertEqual(e.surname, u'de Vienne')
       
   456 
       
   457             e = req.execute(
       
   458                 'Any X, N WHERE X login "cdevienne", X surname N').first()
       
   459             self.assertEqual(e.surname, u'de Vienne')
       
   460 
       
   461             e = req.execute(
       
   462                 'Any N, X WHERE X login "cdevienne", X surname N').first(col=1)
       
   463             self.assertEqual(e.surname, u'de Vienne')
       
   464 
       
   465     def test_first_no_rows(self):
       
   466         with self.admin_access.web_request() as req:
       
   467             with self.assertRaises(NoResultError):
       
   468                 req.execute('Any X WHERE X login "patanok"').first()
       
   469 
       
   470     def test_first_multiple_rows(self):
       
   471         with self.admin_access.web_request() as req:
       
   472             req.create_entity(
       
   473                 'CWUser', login=u'user1', upassword=u'cdevienne',
       
   474                 surname=u'de Vienne', firstname=u'Christophe')
       
   475             req.create_entity(
       
   476                 'CWUser', login=u'user2', upassword='adim',
       
   477                 surname=u'di mascio', firstname=u'adrien')
       
   478 
       
   479             e = req.execute('Any X ORDERBY X WHERE X is CWUser, '
       
   480                             'X login LIKE "user%"').first()
       
   481             self.assertEqual(e.login, 'user1')
       
   482 
       
   483     def test_last(self):
       
   484         with self.admin_access.web_request() as req:
       
   485             req.create_entity('CWUser',
       
   486                               login=u'cdevienne',
       
   487                               upassword=u'cdevienne',
       
   488                               surname=u'de Vienne',
       
   489                               firstname=u'Christophe')
       
   490             e = req.execute('Any X WHERE X login "cdevienne"').last()
       
   491             self.assertEqual(e.surname, u'de Vienne')
       
   492 
       
   493             e = req.execute(
       
   494                 'Any X, N WHERE X login "cdevienne", X surname N').last()
       
   495             self.assertEqual(e.surname, u'de Vienne')
       
   496 
       
   497             e = req.execute(
       
   498                 'Any N, X WHERE X login "cdevienne", X surname N').last(col=1)
       
   499             self.assertEqual(e.surname, u'de Vienne')
       
   500 
       
   501     def test_last_no_rows(self):
       
   502         with self.admin_access.web_request() as req:
       
   503             with self.assertRaises(NoResultError):
       
   504                 req.execute('Any X WHERE X login "patanok"').last()
       
   505 
       
   506     def test_last_multiple_rows(self):
       
   507         with self.admin_access.web_request() as req:
       
   508             req.create_entity(
       
   509                 'CWUser', login=u'user1', upassword=u'cdevienne',
       
   510                 surname=u'de Vienne', firstname=u'Christophe')
       
   511             req.create_entity(
       
   512                 'CWUser', login=u'user2', upassword='adim',
       
   513                 surname=u'di mascio', firstname=u'adrien')
       
   514 
       
   515             e = req.execute('Any X ORDERBY X WHERE X is CWUser, '
       
   516                             'X login LIKE "user%"').last()
       
   517             self.assertEqual(e.login, 'user2')
       
   518 
   447     def test_related_entity_optional(self):
   519     def test_related_entity_optional(self):
   448         with self.admin_access.web_request() as req:
   520         with self.admin_access.web_request() as req:
   449             req.create_entity('Bookmark', title=u'aaaa', path=u'path')
   521             req.create_entity('Bookmark', title=u'aaaa', path=u'path')
   450             rset = req.execute('Any B,U,L WHERE B bookmarked_by U?, U login L')
   522             rset = req.execute('Any B,U,L WHERE B bookmarked_by U?, U login L')
   451             entity, rtype = rset.related_entity(0, 2)
   523             entity, rtype = rset.related_entity(0, 2)