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 |