Mercurial > p > roundup > code
comparison test/rest_common.py @ 5742:97d7faebef0a
Test @apiver version parsing using bogus version. Test /rest, /rest/
for returned data, /rest/summary, /rest/summary/ for success and
/rest/notthere, /rest/notthere/ for a 404.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 29 May 2019 19:50:32 -0400 |
| parents | 9c2e51aae18a |
| children | 60299cd36670 |
comparison
equal
deleted
inserted
replaced
| 5741:9c2e51aae18a | 5742:97d7faebef0a |
|---|---|
| 1243 status=json_dict['data']['status'] | 1243 status=json_dict['data']['status'] |
| 1244 status=json_dict['data']['status'] | 1244 status=json_dict['data']['status'] |
| 1245 self.assertEqual(status, 'ok') | 1245 self.assertEqual(status, 'ok') |
| 1246 | 1246 |
| 1247 # TEST #9 | 1247 # TEST #9 |
| 1248 # GET: test that version can be set with | 1248 # GET: test that version can be set with accept: |
| 1249 # ; version=z or application/vnd.x.y-vz+json | 1249 # ... ; version=z |
| 1250 # or | |
| 1251 # application/vnd.x.y-vz+json | |
| 1252 # or | |
| 1253 # @apiver | |
| 1250 # simulate: /rest/data/issue | 1254 # simulate: /rest/data/issue |
| 1255 form = cgi.FieldStorage() | |
| 1256 form.list = [ | |
| 1257 cgi.MiniFieldStorage('@apiver', 'L'), | |
| 1258 ] | |
| 1259 headers={"accept": "application/json; notversion=z" } | |
| 1260 self.headers=headers | |
| 1261 self.server.client.request.headers.get=self.get_header | |
| 1262 results = self.server.dispatch('GET', | |
| 1263 "/rest/data/issue/1", form) | |
| 1264 print(results) | |
| 1265 json_dict = json.loads(b2s(results)) | |
| 1266 self.assertEqual(json_dict['error']['status'], 400) | |
| 1267 self.assertEqual(json_dict['error']['msg'], | |
| 1268 "Unrecognized version: L. See /rest without " | |
| 1269 "specifying version for supported versions.") | |
| 1270 | |
| 1251 headers={"accept": "application/json; version=z" } | 1271 headers={"accept": "application/json; version=z" } |
| 1252 self.headers=headers | 1272 self.headers=headers |
| 1253 self.server.client.request.headers.get=self.get_header | 1273 self.server.client.request.headers.get=self.get_header |
| 1254 results = self.server.dispatch('GET', | 1274 results = self.server.dispatch('GET', |
| 1255 "/rest/data/issue/1", self.empty_form) | 1275 "/rest/data/issue/1", form) |
| 1256 print(results) | 1276 print(results) |
| 1257 json_dict = json.loads(b2s(results)) | 1277 json_dict = json.loads(b2s(results)) |
| 1258 self.assertEqual(json_dict['error']['status'], 400) | 1278 self.assertEqual(json_dict['error']['status'], 400) |
| 1259 self.assertEqual(json_dict['error']['msg'], | 1279 self.assertEqual(json_dict['error']['msg'], |
| 1260 "Unrecognized version: z. See /rest without " | 1280 "Unrecognized version: z. See /rest without " |
| 1285 json_dict = json.loads(b2s(results)) | 1305 json_dict = json.loads(b2s(results)) |
| 1286 self.assertEqual(json_dict['error']['status'], 400) | 1306 self.assertEqual(json_dict['error']['status'], 400) |
| 1287 self.assertEqual(json_dict['error']['msg'], | 1307 self.assertEqual(json_dict['error']['msg'], |
| 1288 "Unrecognized version: a. See /rest without " | 1308 "Unrecognized version: a. See /rest without " |
| 1289 "specifying version for supported versions.") | 1309 "specifying version for supported versions.") |
| 1310 | |
| 1311 # TEST #10 | |
| 1312 # check /rest and /rest/summary and /rest/notthere | |
| 1313 expected_rest = { | |
| 1314 "data": { | |
| 1315 "supported_versions": [ | |
| 1316 1 | |
| 1317 ], | |
| 1318 "default_version": 1, | |
| 1319 "links": [ | |
| 1320 { | |
| 1321 "rel": "summary", | |
| 1322 "uri": "http://tracker.example/cgi-bin/roundup.cgi/bugs/rest/summary" | |
| 1323 }, | |
| 1324 { | |
| 1325 "rel": "self", | |
| 1326 "uri": "http://tracker.example/cgi-bin/roundup.cgi/bugs/rest" | |
| 1327 }, | |
| 1328 { | |
| 1329 "rel": "data", | |
| 1330 "uri": "http://tracker.example/cgi-bin/roundup.cgi/bugs/rest/data" | |
| 1331 } | |
| 1332 ] | |
| 1333 } | |
| 1334 } | |
| 1335 | |
| 1336 self.headers={} | |
| 1337 results = self.server.dispatch('GET', | |
| 1338 "/rest", self.empty_form) | |
| 1339 print(results) | |
| 1340 self.assertEqual(self.server.client.response_code, 200) | |
| 1341 results_dict = json.loads(b2s(results)) | |
| 1342 self.assertEqual(results_dict, expected_rest) | |
| 1343 | |
| 1344 | |
| 1345 results = self.server.dispatch('GET', | |
| 1346 "/rest/", self.empty_form) | |
| 1347 print(results) | |
| 1348 self.assertEqual(self.server.client.response_code, 200) | |
| 1349 results_dict = json.loads(b2s(results)) | |
| 1350 self.assertEqual(results_dict, expected_rest) | |
| 1351 | |
| 1352 results = self.server.dispatch('GET', | |
| 1353 "/rest/summary", self.empty_form) | |
| 1354 print(results) | |
| 1355 self.assertEqual(self.server.client.response_code, 200) | |
| 1356 | |
| 1357 results = self.server.dispatch('GET', | |
| 1358 "/rest/summary/", self.empty_form) | |
| 1359 print(results) | |
| 1360 self.assertEqual(self.server.client.response_code, 200) | |
| 1361 | |
| 1362 results = self.server.dispatch('GET', | |
| 1363 "/rest/notthere", self.empty_form) | |
| 1364 self.assertEqual(self.server.client.response_code, 404) | |
| 1365 | |
| 1366 results = self.server.dispatch('GET', | |
| 1367 "/rest/notthere/", self.empty_form) | |
| 1368 self.assertEqual(self.server.client.response_code, 404) | |
| 1290 | 1369 |
| 1291 del(self.headers) | 1370 del(self.headers) |
| 1292 | 1371 |
| 1293 def testPostPOE(self): | 1372 def testPostPOE(self): |
| 1294 ''' test post once exactly: get POE url, create issue | 1373 ''' test post once exactly: get POE url, create issue |
