web/test/unittest_views_basecontrollers.py
branchtls-sprint
changeset 1654 57b9fd2462b8
parent 1426 379261551578
child 1797 c2a80130b06d
equal deleted inserted replaced
1653:8b82227719f0 1654:57b9fd2462b8
    87             'upassword-confirm:'+`user.eid`: 'tournicoton',
    87             'upassword-confirm:'+`user.eid`: 'tournicoton',
    88             'edits-upassword:'+`user.eid`:  '',
    88             'edits-upassword:'+`user.eid`:  '',
    89             }
    89             }
    90         path, params = self.expect_redirect_publish(req)
    90         path, params = self.expect_redirect_publish(req)
    91         cnx.commit() # commit to check we don't get late validation error for instance
    91         cnx.commit() # commit to check we don't get late validation error for instance
    92         self.assertEquals(path, 'euser/user')
    92         self.assertEquals(path, 'cwuser/user')
    93         self.failIf('vid' in params)
    93         self.failIf('vid' in params)
    94 
    94 
    95     def testr_user_editing_itself_no_relation(self):
    95     def testr_user_editing_itself_no_relation(self):
    96         """checking we can edit an entity without specifying some required
    96         """checking we can edit an entity without specifying some required
    97         relations (meaning no changes)
    97         relations (meaning no changes)
   135                          'address:Y': u'dima@logilab.fr', 'edits-address:Y': '',
   135                          'address:Y': u'dima@logilab.fr', 'edits-address:Y': '',
   136                          'use_email:X': 'Y', 'edits-use_email:X': INTERNAL_FIELD_VALUE,
   136                          'use_email:X': 'Y', 'edits-use_email:X': INTERNAL_FIELD_VALUE,
   137                          }
   137                          }
   138         path, params = self.expect_redirect_publish()
   138         path, params = self.expect_redirect_publish()
   139         # should be redirected on the created person
   139         # should be redirected on the created person
   140         self.assertEquals(path, 'euser/adim')
   140         self.assertEquals(path, 'cwuser/adim')
   141         e = self.execute('Any P WHERE P surname "Di Mascio"').get_entity(0, 0)
   141         e = self.execute('Any P WHERE P surname "Di Mascio"').get_entity(0, 0)
   142         self.assertEquals(e.surname, 'Di Mascio')
   142         self.assertEquals(e.surname, 'Di Mascio')
   143         email = e.use_email[0]
   143         email = e.use_email[0]
   144         self.assertEquals(email.address, 'dima@logilab.fr')
   144         self.assertEquals(email.address, 'dima@logilab.fr')
   145 
   145 
   327                      {'x': self.session().user.eid, 'e': eid}, 'x')
   327                      {'x': self.session().user.eid, 'e': eid}, 'x')
   328         self.commit()
   328         self.commit()
   329         self.req.form = {'eid': str(eid), '__type:%s'%eid: 'EmailAddress',
   329         self.req.form = {'eid': str(eid), '__type:%s'%eid: 'EmailAddress',
   330                          '__action_delete': ''}
   330                          '__action_delete': ''}
   331         path, params = self.expect_redirect_publish()
   331         path, params = self.expect_redirect_publish()
   332         self.assertEquals(path, 'euser/admin')
   332         self.assertEquals(path, 'cwuser/admin')
   333         self.assertEquals(params, {u'__message': u'entity deleted'})
   333         self.assertEquals(params, {u'__message': u'entity deleted'})
   334         eid1 = self.add_entity('BlogEntry', title=u'hop', content=u'hop').eid
   334         eid1 = self.add_entity('BlogEntry', title=u'hop', content=u'hop').eid
   335         eid2 = self.add_entity('EmailAddress', address=u'hop@logilab.fr').eid
   335         eid2 = self.add_entity('EmailAddress', address=u'hop@logilab.fr').eid
   336         self.req.form = {'eid': [str(eid1), str(eid2)],
   336         self.req.form = {'eid': [str(eid1), str(eid2)],
   337                          '__type:%s'%eid1: 'BlogEntry',
   337                          '__type:%s'%eid1: 'BlogEntry',
   446                          '__maineid' : 'X',
   446                          '__maineid' : 'X',
   447                          'login:X': u'toto', 'edits-login:X': u'',
   447                          'login:X': u'toto', 'edits-login:X': u'',
   448                          'upassword:X': u'toto', 'upassword-confirm:X': u'toto', 'edits-upassword:X': u'',
   448                          'upassword:X': u'toto', 'upassword-confirm:X': u'toto', 'edits-upassword:X': u'',
   449                          }
   449                          }
   450         path, params = self.expect_redirect_publish()
   450         path, params = self.expect_redirect_publish()
   451         self.assertEquals(path, 'euser/toto')
   451         self.assertEquals(path, 'cwuser/toto')
   452         e = self.execute('Any X WHERE X is CWUser, X login "toto"').get_entity(0, 0)
   452         e = self.execute('Any X WHERE X is CWUser, X login "toto"').get_entity(0, 0)
   453         self.assertEquals(e.login, 'toto')
   453         self.assertEquals(e.login, 'toto')
   454         self.assertEquals(e.in_group[0].name, 'managers')
   454         self.assertEquals(e.in_group[0].name, 'managers')
   455 
   455 
   456 
   456 
   525         self.john = self.create_user(u'John')
   525         self.john = self.create_user(u'John')
   526 
   526 
   527 
   527 
   528     ## tests ##################################################################
   528     ## tests ##################################################################
   529     def test_simple_exec(self):
   529     def test_simple_exec(self):
   530         ctrl = self.ctrl(self.request(rql='CWUser P WHERE P login "John"',
   530         req = self.request(rql='CWUser P WHERE P login "John"',
   531                                       pageid='123'))
   531                            pageid='123', fname='view')
       
   532         ctrl = self.ctrl(req)
       
   533         rset = self.john.as_rset()
   532         self.assertTextEquals(ctrl.publish(),
   534         self.assertTextEquals(ctrl.publish(),
   533                               xhtml_wrap(self.john.view('primary')))
   535                               xhtml_wrap(ctrl.view('primary', rset)))
   534 
   536 
   535     def test_json_exec(self):
   537 #     def test_json_exec(self):
   536         rql = 'Any T,N WHERE T is Tag, T name N'
   538 #         rql = 'Any T,N WHERE T is Tag, T name N'
   537         ctrl = self.ctrl(self.request(mode='json', rql=rql, pageid='123'))
   539 #         ctrl = self.ctrl(self.request(mode='json', rql=rql, pageid='123'))
   538         self.assertEquals(ctrl.publish(),
   540 #         self.assertEquals(ctrl.publish(),
   539                           simplejson.dumps(self.execute(rql).rows))
   541 #                           simplejson.dumps(self.execute(rql).rows))
   540 
   542 
   541     def test_remote_add_existing_tag(self):
   543     def test_remote_add_existing_tag(self):
   542         self.remote_call('tag_entity', self.john.eid, ['python'])
   544         self.remote_call('tag_entity', self.john.eid, ['python'])
   543         self.assertUnorderedIterableEquals([tname for tname, in self.execute('Any N WHERE T is Tag, T name N')],
   545         self.assertUnorderedIterableEquals([tname for tname, in self.execute('Any N WHERE T is Tag, T name N')],
   544                              ['python', 'cubicweb'])
   546                              ['python', 'cubicweb'])
   560                          (str(eid), u'Remi', str(eid), 'CWUser', self.john.firstname),
   562                          (str(eid), u'Remi', str(eid), 'CWUser', self.john.firstname),
   561                          'firstname',
   563                          'firstname',
   562                          eid)
   564                          eid)
   563         self.commit()
   565         self.commit()
   564         rset = self.execute('CWUser P')
   566         rset = self.execute('CWUser P')
   565         # make sure we did not insert a new euser here
   567         # make sure we did not insert a new cwuser here
   566         self.assertEquals(len(rset), nbusers)
   568         self.assertEquals(len(rset), nbusers)
   567         john = self.execute('Any X WHERE X eid %(x)s', {'x': self.john.eid}, 'x').get_entity(0, 0)
   569         john = self.execute('Any X WHERE X eid %(x)s', {'x': self.john.eid}, 'x').get_entity(0, 0)
   568         self.assertEquals(john.eid, self.john.eid)
   570         self.assertEquals(john.eid, self.john.eid)
   569         self.assertEquals(john.firstname, 'Remi')
   571         self.assertEquals(john.firstname, 'Remi')
   570 
   572 
   571 
   573 
   572     def test_pending_insertion(self):
   574     def test_pending_insertion(self):
   573         res, req = self.remote_call('add_pending_insert', ['12', 'tags', '13'])
   575         res, req = self.remote_call('add_pending_inserts', [['12', 'tags', '13']])
   574         deletes = req.get_pending_deletes()
   576         deletes = req.get_pending_deletes()
   575         self.assertEquals(deletes, [])
   577         self.assertEquals(deletes, [])
   576         inserts = req.get_pending_inserts()
   578         inserts = req.get_pending_inserts()
   577         self.assertEquals(inserts, ['12:tags:13'])
   579         self.assertEquals(inserts, ['12:tags:13'])
   578         res, req = self.remote_call('add_pending_insert', ['12', 'tags', '14'])
   580         res, req = self.remote_call('add_pending_inserts', [['12', 'tags', '14']])
   579         deletes = req.get_pending_deletes()
   581         deletes = req.get_pending_deletes()
   580         self.assertEquals(deletes, [])
   582         self.assertEquals(deletes, [])
   581         inserts = req.get_pending_inserts()
   583         inserts = req.get_pending_inserts()
   582         self.assertEquals(inserts, ['12:tags:13', '12:tags:14'])
   584         self.assertEquals(inserts, ['12:tags:13', '12:tags:14'])
   583         inserts = req.get_pending_inserts(12)
   585         inserts = req.get_pending_inserts(12)
   607         self.assertEquals(deletes, ['12:tags:14'])
   609         self.assertEquals(deletes, ['12:tags:14'])
   608         req.remove_pending_operations()
   610         req.remove_pending_operations()
   609 
   611 
   610     def test_remove_pending_operations(self):
   612     def test_remove_pending_operations(self):
   611         self.remote_call('add_pending_delete', ['12', 'tags', '13'])
   613         self.remote_call('add_pending_delete', ['12', 'tags', '13'])
   612         _, req = self.remote_call('add_pending_insert', ['12', 'tags', '14'])
   614         _, req = self.remote_call('add_pending_inserts', [['12', 'tags', '14']])
   613         inserts = req.get_pending_inserts()
   615         inserts = req.get_pending_inserts()
   614         self.assertEquals(inserts, ['12:tags:14'])
   616         self.assertEquals(inserts, ['12:tags:14'])
   615         deletes = req.get_pending_deletes()
   617         deletes = req.get_pending_deletes()
   616         self.assertEquals(deletes, ['12:tags:13'])
   618         self.assertEquals(deletes, ['12:tags:13'])
   617         req.remove_pending_operations()
   619         req.remove_pending_operations()
   634     def test_i18n(self):
   636     def test_i18n(self):
   635         self.assertEquals(self.remote_call('i18n', ['bimboom'])[0],
   637         self.assertEquals(self.remote_call('i18n', ['bimboom'])[0],
   636                           simplejson.dumps(['bimboom']))
   638                           simplejson.dumps(['bimboom']))
   637 
   639 
   638     def test_format_date(self):
   640     def test_format_date(self):
   639         self.assertEquals(self.remote_call('format_date', '"2007-01-01 12:00:00"')[0],
   641         self.assertEquals(self.remote_call('format_date', '2007-01-01 12:00:00')[0],
   640                           simplejson.dumps('2007/01/01'))
   642                           simplejson.dumps('2007/01/01'))
   641 
   643 
   642 
   644 
   643 
   645 
   644 
   646