diff -r 3ad7cfca481e -r 379261551578 web/test/unittest_views_basecontrollers.py --- a/web/test/unittest_views_basecontrollers.py Wed Apr 22 16:56:03 2009 +0200 +++ b/web/test/unittest_views_basecontrollers.py Wed Apr 22 16:56:19 2009 +0200 @@ -11,7 +11,7 @@ from cubicweb.common.uilib import rql_for_eid from cubicweb.web import INTERNAL_FIELD_VALUE, Redirect, RequestError -from cubicweb.web.views.basecontrollers import xmlize +from cubicweb.web.views.basecontrollers import xhtml_wrap from cubicweb.entities.authobjs import CWUser @@ -20,25 +20,25 @@ def setUp(self): ControllerTC.setUp(self) self.failUnless('users' in self.schema.eschema('CWGroup').get_groups('read')) - + def tearDown(self): ControllerTC.tearDown(self) self.failUnless('users' in self.schema.eschema('CWGroup').get_groups('read')) - + def test_noparam_edit(self): """check behaviour of this controller without any form parameter """ - + self.req.form = {} self.assertRaises(ValidationError, self.publish, self.req) - + def test_validation_unique(self): """test creation of two linked entities - """ + """ user = self.user() self.req.form = {'eid': 'X', '__type:X': 'CWUser', - 'login:X': u'admin', 'edits-login:X': u'', - 'upassword:X': u'toto', 'upassword-confirm:X': u'toto', 'edits-upassword:X': u'', + 'login:X': u'admin', 'edits-login:X': u'', + 'upassword:X': u'toto', 'upassword-confirm:X': u'toto', 'edits-upassword:X': u'', } self.assertRaises(ValidationError, self.publish, self.req) @@ -117,23 +117,23 @@ self.assertEquals([g.eid for g in e.in_group], groupeids) stateeids = [eid for eid, in self.execute('State S WHERE S name "activated"')] self.assertEquals([s.eid for s in e.in_state], stateeids) - - + + def test_create_multiple_linked(self): gueid = self.execute('CWGroup G WHERE G name "users"')[0][0] self.req.form = {'eid': ['X', 'Y'], - + '__type:X': 'CWUser', '__maineid' : 'X', - 'login:X': u'adim', 'edits-login:X': u'', - 'upassword:X': u'toto', 'upassword-confirm:X': u'toto', 'edits-upassword:X': u'', + 'login:X': u'adim', 'edits-login:X': u'', + 'upassword:X': u'toto', 'upassword-confirm:X': u'toto', 'edits-upassword:X': u'', 'surname:X': u'Di Mascio', 'edits-surname:X': '', - 'in_group:X': `gueid`, 'edits-in_group:X': INTERNAL_FIELD_VALUE, - + 'in_group:X': `gueid`, 'edits-in_group:X': INTERNAL_FIELD_VALUE, + '__type:Y': 'EmailAddress', 'address:Y': u'dima@logilab.fr', 'edits-address:Y': '', - 'use_email:X': 'Y', 'edits-use_email:X': INTERNAL_FIELD_VALUE, + 'use_email:X': 'Y', 'edits-use_email:X': INTERNAL_FIELD_VALUE, } path, params = self.expect_redirect_publish() # should be redirected on the created person @@ -142,17 +142,17 @@ self.assertEquals(e.surname, 'Di Mascio') email = e.use_email[0] self.assertEquals(email.address, 'dima@logilab.fr') - + def test_edit_multiple_linked(self): peid = self.create_user('adim').eid self.req.form = {'eid': [`peid`, 'Y'], '__type:%s'%peid: 'CWUser', 'surname:%s'%peid: u'Di Masci', 'edits-surname:%s'%peid: '', - + '__type:Y': 'EmailAddress', 'address:Y': u'dima@logilab.fr', 'edits-address:Y': '', 'use_email:%s'%peid: 'Y', 'edits-use_email:%s'%peid: INTERNAL_FIELD_VALUE, - + '__redirectrql': 'Any X WHERE X eid %s'%peid, } path, params = self.expect_redirect_publish() @@ -162,14 +162,14 @@ self.assertEquals(e.surname, 'Di Masci') email = e.use_email[0] self.assertEquals(email.address, 'dima@logilab.fr') - + emaileid = email.eid self.req.form = {'eid': [`peid`, `emaileid`], '__type:%s'%peid: 'CWUser', 'surname:%s'%peid: u'Di Masci', 'edits-surname:%s'%peid: 'Di Masci', '__type:%s'%emaileid: 'EmailAddress', 'address:%s'%emaileid: u'adim@logilab.fr', 'edits-address:%s'%emaileid: 'dima@logilab.fr', - 'use_email:%s'%peid: `emaileid`, 'edits-use_email:%s'%peid: `emaileid`, + 'use_email:%s'%peid: `emaileid`, 'edits-use_email:%s'%peid: `emaileid`, '__redirectrql': 'Any X WHERE X eid %s'%peid, } path, params = self.expect_redirect_publish() @@ -180,21 +180,21 @@ email = e.use_email[0] self.assertEquals(email.address, 'adim@logilab.fr') - + def test_password_confirm(self): """test creation of two linked entities - """ + """ user = self.user() self.req.form = {'__cloned_eid:X': user.eid, 'eid': 'X', '__type:X': 'CWUser', - 'login:X': u'toto', 'edits-login:X': u'', - 'upassword:X': u'toto', 'edits-upassword:X': u'', + 'login:X': u'toto', 'edits-login:X': u'', + 'upassword:X': u'toto', 'edits-upassword:X': u'', } self.assertRaises(ValidationError, self.publish, self.req) self.req.form = {'__cloned_eid:X': user.eid, 'eid': 'X', '__type:X': 'CWUser', - 'login:X': u'toto', 'edits-login:X': u'', - 'upassword:X': u'toto', 'upassword-confirm:X': u'tutu', 'edits-upassword:X': u'', + 'login:X': u'toto', 'edits-login:X': u'', + 'upassword:X': u'toto', 'upassword-confirm:X': u'tutu', 'edits-upassword:X': u'', } self.assertRaises(ValidationError, self.publish, self.req) @@ -220,7 +220,7 @@ 'described_by_test:X': str(feid), 'edits-described_by_test:X': INTERNAL_FIELD_VALUE, } self.expect_redirect_publish() - # should be redirected on the created + # should be redirected on the created #eid = params['rql'].split()[-1] e = self.execute('Salesterm X').get_entity(0, 0) self.assertEquals(e.amount, 10) @@ -273,7 +273,7 @@ self.assertEquals(rset[0][0], 'FOO') finally: del CWUser.custom_login_edit - + def test_redirect_apply_button(self): redirectrql = rql_for_eid(4012) # whatever self.req.form = { @@ -354,13 +354,13 @@ 'name:'+`eeetypeeid`: u'CWGroup', 'final:'+`eeetypeeid`: False, 'meta:'+`eeetypeeid`: True, - 'description:'+`eeetypeeid`: u'users group', + 'description:'+`eeetypeeid`: u'users group', 'read_permission:'+`eeetypeeid`: groups, # 'edits-name:'+`eeetypeeid`: u'CWGroup', 'edits-final:'+`eeetypeeid`: False, 'edits-meta:'+`eeetypeeid`: True, - 'edits-description:'+`eeetypeeid`: u'users group', + 'edits-description:'+`eeetypeeid`: u'users group', 'edits-read_permission:'+`eeetypeeid`: basegroups, } try: @@ -372,7 +372,7 @@ # restore self.execute('SET X read_permission Y WHERE X name "CWGroup", Y eid IN (%s), NOT X read_permission Y' % (','.join(basegroups))) self.commit() - + def test_nonregr_eetype_etype_editing(self): """non-regression test checking that a manager user can edit a CWEType entity (CWEType) """ @@ -386,13 +386,13 @@ 'name:'+`eeetypeeid`: u'CWEType', 'final:'+`eeetypeeid`: False, 'meta:'+`eeetypeeid`: True, - 'description:'+`eeetypeeid`: u'users group', + 'description:'+`eeetypeeid`: u'users group', 'read_permission:'+`eeetypeeid`: groups, 'edits-name:'+`eeetypeeid`: u'CWEType', 'edits-final:'+`eeetypeeid`: False, 'edits-meta:'+`eeetypeeid`: True, - 'edits-description:'+`eeetypeeid`: u'users group', + 'edits-description:'+`eeetypeeid`: u'users group', 'edits-read_permission:'+`eeetypeeid`: basegroups, } try: @@ -404,12 +404,12 @@ # restore self.execute('SET X read_permission Y WHERE X name "CWEType", Y eid IN (%s), NOT X read_permission Y' % (','.join(basegroups))) self.commit() - + def test_nonregr_strange_text_input(self): """non-regression test checking text input containing "13:03:43" this seems to be postgres (tsearch?) specific - """ + """ self.req.form = { 'eid': 'A', '__type:A': 'BlogEntry', '__maineid' : 'A', @@ -426,16 +426,16 @@ def test_nonregr_multiple_empty_email_addr(self): gueid = self.execute('CWGroup G WHERE G name "users"')[0][0] self.req.form = {'eid': ['X', 'Y'], - + '__type:X': 'CWUser', - 'login:X': u'adim', 'edits-login:X': u'', - 'upassword:X': u'toto', 'upassword-confirm:X': u'toto', 'edits-upassword:X': u'', - 'in_group:X': `gueid`, 'edits-in_group:X': INTERNAL_FIELD_VALUE, - + 'login:X': u'adim', 'edits-login:X': u'', + 'upassword:X': u'toto', 'upassword-confirm:X': u'toto', 'edits-upassword:X': u'', + 'in_group:X': `gueid`, 'edits-in_group:X': INTERNAL_FIELD_VALUE, + '__type:Y': 'EmailAddress', 'address:Y': u'', 'edits-address:Y': '', 'alias:Y': u'', 'edits-alias:Y': '', - 'use_email:X': 'Y', 'edits-use_email:X': INTERNAL_FIELD_VALUE, + 'use_email:X': 'Y', 'edits-use_email:X': INTERNAL_FIELD_VALUE, } self.assertRaises(ValidationError, self.publish, self.req) @@ -444,8 +444,8 @@ self.req.form = {'__cloned_eid:X': user.eid, 'eid': 'X', '__type:X': 'CWUser', '__maineid' : 'X', - 'login:X': u'toto', 'edits-login:X': u'', - 'upassword:X': u'toto', 'upassword-confirm:X': u'toto', 'edits-upassword:X': u'', + 'login:X': u'toto', 'edits-login:X': u'', + 'upassword:X': u'toto', 'upassword-confirm:X': u'toto', 'edits-upassword:X': u'', } path, params = self.expect_redirect_publish() self.assertEquals(path, 'euser/toto') @@ -465,7 +465,7 @@ {'p' : p.eid, 'e' : e.eid}) self.req.form = {'__cloned_eid:X': p.eid, 'eid': 'X', '__type:X': 'CWUser', - 'login': u'dodo', 'edits-login': u'dodo', + 'login': u'dodo', 'edits-login': u'dodo', 'surname:X': u'Boom', 'edits-surname:X': u'', '__errorurl' : "whatever but required", } @@ -510,7 +510,7 @@ self.login('anon') req = self.request() self.assertRaises(Unauthorized, self.env.app.select_controller, 'sendmail', req) - + class JSONControllerTC(EnvBasedTC): @@ -530,7 +530,7 @@ ctrl = self.ctrl(self.request(rql='CWUser P WHERE P login "John"', pageid='123')) self.assertTextEquals(ctrl.publish(), - xmlize(self.john.view('primary'))) + xhtml_wrap(self.john.view('primary'))) def test_json_exec(self): rql = 'Any T,N WHERE T is Tag, T name N' @@ -544,7 +544,7 @@ ['python', 'cubicweb']) self.assertEquals(self.execute('Any N WHERE T tags P, P is CWUser, T name N').rows, [['python']]) - + def test_remote_add_new_tag(self): self.remote_call('tag_entity', self.john.eid, ['javascript']) self.assertUnorderedIterableEquals([tname for tname, in self.execute('Any N WHERE T is Tag, T name N')], @@ -617,7 +617,7 @@ req.remove_pending_operations() self.assertEquals(req.get_pending_deletes(), []) self.assertEquals(req.get_pending_inserts(), []) - + def test_add_inserts(self): res, req = self.remote_call('add_pending_inserts', @@ -625,7 +625,7 @@ inserts = req.get_pending_inserts() self.assertEquals(inserts, ['12:tags:13', '12:tags:14']) req.remove_pending_operations() - + # silly tests def test_external_resource(self): @@ -639,8 +639,8 @@ self.assertEquals(self.remote_call('format_date', '"2007-01-01 12:00:00"')[0], simplejson.dumps('2007/01/01')) - + - + if __name__ == '__main__': unittest_main()