comparison test/rest_common.py @ 5747:17b38e209307

Test patch op=action restore; test patch add for attribute with no value.
author John Rouillard <rouilj@ieee.org>
date Thu, 30 May 2019 20:15:16 -0400
parents fea2b6e54492
children ddb553d5618c
comparison
equal deleted inserted replaced
5746:fea2b6e54492 5747:17b38e209307
2222 results = results['data'] 2222 results = results['data']
2223 self.assertEqual(self.dummy_client.response_code, 200) 2223 self.assertEqual(self.dummy_client.response_code, 200)
2224 self.assertEqual(len(results['attributes']['nosy']), 3) 2224 self.assertEqual(len(results['attributes']['nosy']), 3)
2225 self.assertListEqual(results['attributes']['nosy'], ['1', '2', '3']) 2225 self.assertListEqual(results['attributes']['nosy'], ['1', '2', '3'])
2226 2226
2227 # patch with no new_val/data
2228 etag = calculate_etag(self.db.issue.getnode(issue_id),
2229 self.db.config['WEB_SECRET_KEY'])
2230 form = cgi.FieldStorage()
2231 form.list = [
2232 cgi.MiniFieldStorage('@op', 'add'),
2233 cgi.MiniFieldStorage('data', ''),
2234 cgi.MiniFieldStorage('@etag', etag)
2235 ]
2236 results = self.server.patch_attribute('issue', issue_id, 'nosy', form)
2237 self.assertEqual(self.dummy_client.response_code, 200)
2238
2239 # verify the result
2240 results = self.server.get_element('issue', issue_id, self.terse_form)
2241 results = results['data']
2242 self.assertEqual(self.dummy_client.response_code, 200)
2243 self.assertEqual(len(results['attributes']['nosy']), 3)
2244 self.assertListEqual(results['attributes']['nosy'], ['1', '2', '3'])
2227 2245
2228 # patch invalid property 2246 # patch invalid property
2229 etag = calculate_etag(self.db.issue.getnode(issue_id), 2247 etag = calculate_etag(self.db.issue.getnode(issue_id),
2230 self.db.config['WEB_SECRET_KEY']) 2248 self.db.config['WEB_SECRET_KEY'])
2231 form = cgi.FieldStorage() 2249 form = cgi.FieldStorage()
2472 self.assertEqual(self.dummy_client.response_code, 200) 2490 self.assertEqual(self.dummy_client.response_code, 200)
2473 2491
2474 # verify the result 2492 # verify the result
2475 self.assertTrue(self.db.issue.is_retired(issue_id)) 2493 self.assertTrue(self.db.issue.is_retired(issue_id))
2476 2494
2495 # execute action restore
2496 form = cgi.FieldStorage()
2497 etag = calculate_etag(self.db.issue.getnode(issue_id),
2498 self.db.config['WEB_SECRET_KEY'])
2499 form.list = [
2500 cgi.MiniFieldStorage('@op', 'action'),
2501 cgi.MiniFieldStorage('@action_name', 'restore'),
2502 cgi.MiniFieldStorage('@etag', etag)
2503 ]
2504 results = self.server.patch_element('issue', issue_id, form)
2505 self.assertEqual(self.dummy_client.response_code, 200)
2506
2507 # verify the result
2508 self.assertTrue(not self.db.issue.is_retired(issue_id))
2509
2477 def testPatchRemove(self): 2510 def testPatchRemove(self):
2478 """ 2511 """
2479 Test Patch Action 'Remove' only some element from a list 2512 Test Patch Action 'Remove' only some element from a list
2480 """ 2513 """
2481 # create a new issue with userid 1, 2, 3 in the nosy list 2514 # create a new issue with userid 1, 2, 3 in the nosy list
2494 results = results['data'] 2527 results = results['data']
2495 self.assertEqual(self.dummy_client.response_code, 200) 2528 self.assertEqual(self.dummy_client.response_code, 200)
2496 self.assertEqual(len(results['attributes']['nosy']), 3) 2529 self.assertEqual(len(results['attributes']['nosy']), 3)
2497 self.assertEqual(results['attributes']['nosy'], ['1', '2', '3']) 2530 self.assertEqual(results['attributes']['nosy'], ['1', '2', '3'])
2498 2531
2499 # remove the nosy list and the title 2532 # remove 1 and 2 from the nosy list
2500 form = cgi.FieldStorage() 2533 form = cgi.FieldStorage()
2501 etag = calculate_etag(self.db.issue.getnode(issue_id), 2534 etag = calculate_etag(self.db.issue.getnode(issue_id),
2502 self.db.config['WEB_SECRET_KEY']) 2535 self.db.config['WEB_SECRET_KEY'])
2503 form.list = [ 2536 form.list = [
2504 cgi.MiniFieldStorage('@op', 'remove'), 2537 cgi.MiniFieldStorage('@op', 'remove'),
2512 results = self.server.get_element('issue', issue_id, self.terse_form) 2545 results = self.server.get_element('issue', issue_id, self.terse_form)
2513 results = results['data'] 2546 results = results['data']
2514 self.assertEqual(self.dummy_client.response_code, 200) 2547 self.assertEqual(self.dummy_client.response_code, 200)
2515 self.assertEqual(len(results['attributes']['nosy']), 1) 2548 self.assertEqual(len(results['attributes']['nosy']), 1)
2516 self.assertEqual(results['attributes']['nosy'], ['3']) 2549 self.assertEqual(results['attributes']['nosy'], ['3'])
2550
2551 # delete last element: 3
2552 etag = calculate_etag(self.db.issue.getnode(issue_id),
2553 self.db.config['WEB_SECRET_KEY'])
2554 form = cgi.FieldStorage()
2555 form.list = [
2556 cgi.MiniFieldStorage('@op', 'remove'),
2557 cgi.MiniFieldStorage('data', '3'),
2558 cgi.MiniFieldStorage('@etag', etag)
2559 ]
2560 results = self.server.patch_attribute('issue', issue_id, 'nosy', form)
2561 self.assertEqual(self.dummy_client.response_code, 200)
2562
2563 # verify the result
2564 results = self.server.get_element('issue', issue_id, self.terse_form)
2565 results = results['data']
2566 self.assertEqual(self.dummy_client.response_code, 200)
2567 self.assertEqual(len(results['attributes']['nosy']), 0)
2568 self.assertListEqual(results['attributes']['nosy'], [])
2517 2569
2518 2570
2519 def get_obj(path, id): 2571 def get_obj(path, id):
2520 return { 2572 return {
2521 'id': id, 2573 'id': id,

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