Mercurial > p > roundup > code
diff 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 |
line wrap: on
line diff
--- a/test/rest_common.py Wed May 29 22:56:50 2019 -0400 +++ b/test/rest_common.py Thu May 30 20:15:16 2019 -0400 @@ -2224,6 +2224,24 @@ self.assertEqual(len(results['attributes']['nosy']), 3) self.assertListEqual(results['attributes']['nosy'], ['1', '2', '3']) + # patch with no new_val/data + etag = calculate_etag(self.db.issue.getnode(issue_id), + self.db.config['WEB_SECRET_KEY']) + form = cgi.FieldStorage() + form.list = [ + cgi.MiniFieldStorage('@op', 'add'), + cgi.MiniFieldStorage('data', ''), + cgi.MiniFieldStorage('@etag', etag) + ] + results = self.server.patch_attribute('issue', issue_id, 'nosy', form) + self.assertEqual(self.dummy_client.response_code, 200) + + # verify the result + results = self.server.get_element('issue', issue_id, self.terse_form) + results = results['data'] + self.assertEqual(self.dummy_client.response_code, 200) + self.assertEqual(len(results['attributes']['nosy']), 3) + self.assertListEqual(results['attributes']['nosy'], ['1', '2', '3']) # patch invalid property etag = calculate_etag(self.db.issue.getnode(issue_id), @@ -2474,6 +2492,21 @@ # verify the result self.assertTrue(self.db.issue.is_retired(issue_id)) + # execute action restore + form = cgi.FieldStorage() + etag = calculate_etag(self.db.issue.getnode(issue_id), + self.db.config['WEB_SECRET_KEY']) + form.list = [ + cgi.MiniFieldStorage('@op', 'action'), + cgi.MiniFieldStorage('@action_name', 'restore'), + cgi.MiniFieldStorage('@etag', etag) + ] + results = self.server.patch_element('issue', issue_id, form) + self.assertEqual(self.dummy_client.response_code, 200) + + # verify the result + self.assertTrue(not self.db.issue.is_retired(issue_id)) + def testPatchRemove(self): """ Test Patch Action 'Remove' only some element from a list @@ -2496,7 +2529,7 @@ self.assertEqual(len(results['attributes']['nosy']), 3) self.assertEqual(results['attributes']['nosy'], ['1', '2', '3']) - # remove the nosy list and the title + # remove 1 and 2 from the nosy list form = cgi.FieldStorage() etag = calculate_etag(self.db.issue.getnode(issue_id), self.db.config['WEB_SECRET_KEY']) @@ -2515,6 +2548,25 @@ self.assertEqual(len(results['attributes']['nosy']), 1) self.assertEqual(results['attributes']['nosy'], ['3']) + # delete last element: 3 + etag = calculate_etag(self.db.issue.getnode(issue_id), + self.db.config['WEB_SECRET_KEY']) + form = cgi.FieldStorage() + form.list = [ + cgi.MiniFieldStorage('@op', 'remove'), + cgi.MiniFieldStorage('data', '3'), + cgi.MiniFieldStorage('@etag', etag) + ] + results = self.server.patch_attribute('issue', issue_id, 'nosy', form) + self.assertEqual(self.dummy_client.response_code, 200) + + # verify the result + results = self.server.get_element('issue', issue_id, self.terse_form) + results = results['data'] + self.assertEqual(self.dummy_client.response_code, 200) + self.assertEqual(len(results['attributes']['nosy']), 0) + self.assertListEqual(results['attributes']['nosy'], []) + def get_obj(path, id): return {
