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

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