web/test/unittest_views_basecontrollers.py
branchstable
changeset 6796 e70ca9abfc51
parent 6412 370357e68837
child 6875 a166b51d13f8
equal deleted inserted replaced
6795:f29d24c3d687 6796:e70ca9abfc51
    45         self.failUnless('users' in self.schema.eschema('CWGroup').get_groups('read'))
    45         self.failUnless('users' in self.schema.eschema('CWGroup').get_groups('read'))
    46 
    46 
    47     def test_noparam_edit(self):
    47     def test_noparam_edit(self):
    48         """check behaviour of this controller without any form parameter
    48         """check behaviour of this controller without any form parameter
    49         """
    49         """
    50         ex = self.assertRaises(ValidationError, self.ctrl_publish, self.request())
    50         with self.assertRaises(ValidationError) as cm:
    51         self.assertEqual(ex.errors, {None: u'no selected entities'})
    51             self.ctrl_publish(self.request())
       
    52         self.assertEqual(cm.exception.errors, {None: u'no selected entities'})
    52 
    53 
    53     def test_validation_unique(self):
    54     def test_validation_unique(self):
    54         """test creation of two linked entities
    55         """test creation of two linked entities
    55         """
    56         """
    56         user = self.user()
    57         user = self.user()
    59                     '_cw_edited_fields:X': 'login-subject,upassword-subject',
    60                     '_cw_edited_fields:X': 'login-subject,upassword-subject',
    60                     'login-subject:X': u'admin',
    61                     'login-subject:X': u'admin',
    61                     'upassword-subject:X': u'toto',
    62                     'upassword-subject:X': u'toto',
    62                     'upassword-subject-confirm:X': u'toto',
    63                     'upassword-subject-confirm:X': u'toto',
    63                     }
    64                     }
    64         ex = self.assertRaises(ValidationError, self.ctrl_publish, req)
    65         with self.assertRaises(ValidationError) as cm:
    65         self.assertEqual(ex.errors, {'login-subject': 'the value "admin" is already used, use another one'})
    66             self.ctrl_publish(req)
       
    67         self.assertEqual(cm.exception.errors, {'login-subject': 'the value "admin" is already used, use another one'})
    66 
    68 
    67     def test_user_editing_itself(self):
    69     def test_user_editing_itself(self):
    68         """checking that a manager user can edit itself
    70         """checking that a manager user can edit itself
    69         """
    71         """
    70         user = self.user()
    72         user = self.user()
   203                     '__cloned_eid:X': u(user.eid), '__type:X': 'CWUser',
   205                     '__cloned_eid:X': u(user.eid), '__type:X': 'CWUser',
   204                     '_cw_edited_fields:X': 'login-subject,upassword-subject',
   206                     '_cw_edited_fields:X': 'login-subject,upassword-subject',
   205                     'login-subject:X': u'toto',
   207                     'login-subject:X': u'toto',
   206                     'upassword-subject:X': u'toto',
   208                     'upassword-subject:X': u'toto',
   207                     }
   209                     }
   208         ex = self.assertRaises(ValidationError, self.ctrl_publish, req)
   210         with self.assertRaises(ValidationError) as cm:
   209         self.assertEqual(ex.errors, {'upassword-subject': u'password and confirmation don\'t match'})
   211             self.ctrl_publish(req)
       
   212         self.assertEqual(cm.exception.errors, {'upassword-subject': u'password and confirmation don\'t match'})
   210         req = self.request()
   213         req = self.request()
   211         req.form = {'__cloned_eid:X': u(user.eid),
   214         req.form = {'__cloned_eid:X': u(user.eid),
   212                     'eid': 'X', '__type:X': 'CWUser',
   215                     'eid': 'X', '__type:X': 'CWUser',
   213                     '_cw_edited_fields:X': 'login-subject,upassword-subject',
   216                     '_cw_edited_fields:X': 'login-subject,upassword-subject',
   214                     'login-subject:X': u'toto',
   217                     'login-subject:X': u'toto',
   215                     'upassword-subject:X': u'toto',
   218                     'upassword-subject:X': u'toto',
   216                     'upassword-subject-confirm:X': u'tutu',
   219                     'upassword-subject-confirm:X': u'tutu',
   217                     }
   220                     }
   218         ex = self.assertRaises(ValidationError, self.ctrl_publish, req)
   221         with self.assertRaises(ValidationError) as cm:
   219         self.assertEqual(ex.errors, {'upassword-subject': u'password and confirmation don\'t match'})
   222             self.ctrl_publish(req)
       
   223         self.assertEqual(cm.exception.errors, {'upassword-subject': u'password and confirmation don\'t match'})
   220 
   224 
   221 
   225 
   222     def test_interval_bound_constraint_success(self):
   226     def test_interval_bound_constraint_success(self):
   223         feid = self.execute('INSERT File X: X data_name "toto.txt", X data %(data)s',
   227         feid = self.execute('INSERT File X: X data_name "toto.txt", X data %(data)s',
   224                             {'data': Binary('yo')})[0][0]
   228                             {'data': Binary('yo')})[0][0]
   228                     '__type:X': 'Salesterm',
   232                     '__type:X': 'Salesterm',
   229                     '_cw_edited_fields:X': 'amount-subject,described_by_test-subject',
   233                     '_cw_edited_fields:X': 'amount-subject,described_by_test-subject',
   230                     'amount-subject:X': u'-10',
   234                     'amount-subject:X': u'-10',
   231                     'described_by_test-subject:X': u(feid),
   235                     'described_by_test-subject:X': u(feid),
   232                 }
   236                 }
   233         ex = self.assertRaises(ValidationError, self.ctrl_publish, req)
   237         with self.assertRaises(ValidationError) as cm:
   234         self.assertEqual(ex.errors, {'amount-subject': 'value must be >= 0'})
   238             self.ctrl_publish(req)
       
   239         self.assertEqual(cm.exception.errors, {'amount-subject': 'value must be >= 0'})
   235         req = self.request(rollbackfirst=True)
   240         req = self.request(rollbackfirst=True)
   236         req.form = {'eid': ['X'],
   241         req.form = {'eid': ['X'],
   237                     '__type:X': 'Salesterm',
   242                     '__type:X': 'Salesterm',
   238                     '_cw_edited_fields:X': 'amount-subject,described_by_test-subject',
   243                     '_cw_edited_fields:X': 'amount-subject,described_by_test-subject',
   239                     'amount-subject:X': u'110',
   244                     'amount-subject:X': u'110',
   240                     'described_by_test-subject:X': u(feid),
   245                     'described_by_test-subject:X': u(feid),
   241                     }
   246                     }
   242         ex = self.assertRaises(ValidationError, self.ctrl_publish, req)
   247         with self.assertRaises(ValidationError) as cm:
   243         self.assertEqual(ex.errors, {'amount-subject': 'value must be <= 100'})
   248             self.ctrl_publish(req)
       
   249         self.assertEqual(cm.exception.errors, {'amount-subject': 'value must be <= 100'})
   244         req = self.request(rollbackfirst=True)
   250         req = self.request(rollbackfirst=True)
   245         req.form = {'eid': ['X'],
   251         req.form = {'eid': ['X'],
   246                     '__type:X': 'Salesterm',
   252                     '__type:X': 'Salesterm',
   247                     '_cw_edited_fields:X': 'amount-subject,described_by_test-subject',
   253                     '_cw_edited_fields:X': 'amount-subject,described_by_test-subject',
   248                     'amount-subject:X': u'10',
   254                     'amount-subject:X': u'10',
   419                     '_cw_edited_fields:Y': 'address-subject,alias-subject,use_email-object',
   425                     '_cw_edited_fields:Y': 'address-subject,alias-subject,use_email-object',
   420                     'address-subject:Y': u'',
   426                     'address-subject:Y': u'',
   421                     'alias-subject:Y': u'',
   427                     'alias-subject:Y': u'',
   422                     'use_email-object:Y': 'X',
   428                     'use_email-object:Y': 'X',
   423                     }
   429                     }
   424         ex = self.assertRaises(ValidationError, self.ctrl_publish, req)
   430         with self.assertRaises(ValidationError) as cm:
   425         self.assertEqual(ex.errors, {'address-subject': u'required field'})
   431             self.ctrl_publish(req)
       
   432         self.assertEqual(cm.exception.errors, {'address-subject': u'required field'})
   426 
   433 
   427     def test_nonregr_copy(self):
   434     def test_nonregr_copy(self):
   428         user = self.user()
   435         user = self.user()
   429         req = self.request()
   436         req = self.request()
   430         req.form = {'__maineid' : 'X', 'eid': 'X',
   437         req.form = {'__maineid' : 'X', 'eid': 'X',