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