Mercurial > p > roundup > code
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( |
