comparison test/rest_common.py @ 5707:f9a762678af6

Change some 400 errors to 405 (method not allowed) errors where user is tryng to delete or modify a read only attribute/resource. Fix errors generated when output dict include exceptions and we are generating XML output. Add XML header with encoding to xml output.
author John Rouillard <rouilj@ieee.org>
date Sat, 13 Apr 2019 12:16:15 -0400
parents dfca6136dd7b
children ad786c394788
comparison
equal deleted inserted replaced
5706:dfca6136dd7b 5707:f9a762678af6
1083 cgi.MiniFieldStorage('@etag', etag) 1083 cgi.MiniFieldStorage('@etag', etag)
1084 ] 1084 ]
1085 results = self.server.put_attribute( 1085 results = self.server.put_attribute(
1086 'user', self.joeid, 'creator', form 1086 'user', self.joeid, 'creator', form
1087 ) 1087 )
1088 expected= {'error': {'status': 400, 'msg': 1088 expected= {'error': {'status': 405, 'msg':
1089 UsageError('\'"creator", "actor", "creation" and ' 1089 AttributeError('\'"creator", "actor", "creation" and '
1090 '"activity" are reserved\'')}} 1090 '"activity" are reserved\'')}}
1091 print(results) 1091 print(results)
1092 self.assertEqual(results['error']['status'], 1092 self.assertEqual(results['error']['status'],
1093 expected['error']['status']) 1093 expected['error']['status'])
1094 self.assertEqual(type(results['error']['msg']), 1094 self.assertEqual(type(results['error']['msg']),
1095 type(expected['error']['msg'])) 1095 type(expected['error']['msg']))
1096 self.assertEqual(self.dummy_client.response_code, 400) 1096 self.assertEqual(self.dummy_client.response_code, 405)
1097 1097
1098 # put invalid property 1098 # put invalid property
1099 # make sure we don't have permission issues 1099 # make sure we don't have permission issues
1100 self.db.setCurrentUser('admin') 1100 self.db.setCurrentUser('admin')
1101 form = cgi.FieldStorage() 1101 form = cgi.FieldStorage()
1270 form.list.append(cgi.MiniFieldStorage('@etag', etag)) 1270 form.list.append(cgi.MiniFieldStorage('@etag', etag))
1271 results = self.server.delete_attribute( 1271 results = self.server.delete_attribute(
1272 'issue', issue_id, 'creator', form 1272 'issue', issue_id, 'creator', form
1273 ) 1273 )
1274 expected= {'error': { 1274 expected= {'error': {
1275 'status': 400, 1275 'status': 405,
1276 'msg': UsageError("Attribute 'creator' can not be updated for class issue.") 1276 'msg': AttributeError("Attribute 'creator' can not be updated for class issue.")
1277 }} 1277 }}
1278 1278
1279 self.assertEqual(results['error']['status'], 1279 self.assertEqual(results['error']['status'],
1280 expected['error']['status']) 1280 expected['error']['status'])
1281 self.assertEqual(type(results['error']['msg']), 1281 self.assertEqual(type(results['error']['msg']),
1282 type(expected['error']['msg'])) 1282 type(expected['error']['msg']))
1283 self.assertEqual(self.dummy_client.response_code, 400) 1283 self.assertEqual(self.dummy_client.response_code, 405)
1284 1284
1285 # delete required property 1285 # delete required property
1286 etag = calculate_etag(self.db.issue.getnode(issue_id)) 1286 etag = calculate_etag(self.db.issue.getnode(issue_id))
1287 form.list.append(cgi.MiniFieldStorage('@etag', etag)) 1287 form.list.append(cgi.MiniFieldStorage('@etag', etag))
1288 results = self.server.delete_attribute( 1288 results = self.server.delete_attribute(

Roundup Issue Tracker: http://roundup-tracker.org/