Mercurial > p > roundup > code
comparison test/test_rest.py @ 5591:a25d79e874cb REST-rebased
Added filtering and pagination
Adjust unittest to use empty cgi formfield instead of empty dict
committer: Ralf Schlatterbeck <rsc@runtux.com>
| author | Chau Nguyen <dangchau1991@yahoo.com> |
|---|---|
| date | Wed, 30 Jan 2019 10:26:35 +0100 |
| parents | 6b3a9655a7d9 |
| children | adcb5cbe82bd |
comparison
equal
deleted
inserted
replaced
| 5590:4d8746c73fdb | 5591:a25d79e874cb |
|---|---|
| 55 'PATH_INFO': 'http://localhost/rounduptest/rest/', | 55 'PATH_INFO': 'http://localhost/rounduptest/rest/', |
| 56 'HTTP_HOST': 'localhost', | 56 'HTTP_HOST': 'localhost', |
| 57 'TRACKER_NAME': 'rounduptest' | 57 'TRACKER_NAME': 'rounduptest' |
| 58 } | 58 } |
| 59 self.dummy_client = client.Client(self.instance, None, env, [], None) | 59 self.dummy_client = client.Client(self.instance, None, env, [], None) |
| 60 self.empty_form = cgi.FieldStorage() | |
| 60 | 61 |
| 61 self.server = RestfulInstance(self.dummy_client, self.db) | 62 self.server = RestfulInstance(self.dummy_client, self.db) |
| 62 | 63 |
| 63 def tearDown(self): | 64 def tearDown(self): |
| 64 self.db.close() | 65 self.db.close() |
| 72 """ | 73 """ |
| 73 Retrieve all three users | 74 Retrieve all three users |
| 74 obtain data for 'joe' | 75 obtain data for 'joe' |
| 75 """ | 76 """ |
| 76 # Retrieve all three users. | 77 # Retrieve all three users. |
| 77 results = self.server.get_collection('user', {}) | 78 results = self.server.get_collection('user', self.empty_form) |
| 78 self.assertEqual(self.dummy_client.response_code, 200) | 79 self.assertEqual(self.dummy_client.response_code, 200) |
| 79 self.assertEqual(len(results['data']), 3) | 80 self.assertEqual(len(results['data']), 3) |
| 80 | 81 |
| 81 # Obtain data for 'joe'. | 82 # Obtain data for 'joe'. |
| 82 results = self.server.get_element('user', self.joeid, {})['data'] | 83 results = self.server.get_element('user', self.joeid, self.empty_form) |
| 84 results = results['data'] | |
| 83 self.assertEqual(self.dummy_client.response_code, 200) | 85 self.assertEqual(self.dummy_client.response_code, 200) |
| 84 self.assertEqual(results['attributes']['username'], 'joe') | 86 self.assertEqual(results['attributes']['username'], 'joe') |
| 85 self.assertEqual(results['attributes']['realname'], 'Joe Random') | 87 self.assertEqual(results['attributes']['realname'], 'Joe Random') |
| 86 | 88 |
| 87 # Obtain data for 'joe'. | 89 # Obtain data for 'joe'. |
| 88 results = self.server.get_attribute( | 90 results = self.server.get_attribute( |
| 89 'user', self.joeid, 'username', {} | 91 'user', self.joeid, 'username', self.empty_form |
| 90 ) | 92 ) |
| 91 self.assertEqual(self.dummy_client.response_code, 200) | 93 self.assertEqual(self.dummy_client.response_code, 200) |
| 92 self.assertEqual(results['data']['data'], 'joe') | 94 self.assertEqual(results['data']['data'], 'joe') |
| 93 | 95 |
| 94 def testPut(self): | 96 def testPut(self): |
| 103 ] | 105 ] |
| 104 results = self.server.put_attribute( | 106 results = self.server.put_attribute( |
| 105 'user', self.joeid, 'realname', form | 107 'user', self.joeid, 'realname', form |
| 106 ) | 108 ) |
| 107 results = self.server.get_attribute( | 109 results = self.server.get_attribute( |
| 108 'user', self.joeid, 'realname', {} | 110 'user', self.joeid, 'realname', self.empty_form |
| 109 ) | 111 ) |
| 110 self.assertEqual(self.dummy_client.response_code, 200) | 112 self.assertEqual(self.dummy_client.response_code, 200) |
| 111 self.assertEqual(results['data']['data'], 'Joe Doe Doe') | 113 self.assertEqual(results['data']['data'], 'Joe Doe Doe') |
| 112 | 114 |
| 113 # Reset joe's 'realname'. | 115 # Reset joe's 'realname'. |
| 114 form = cgi.FieldStorage() | 116 form = cgi.FieldStorage() |
| 115 form.list = [ | 117 form.list = [ |
| 116 cgi.MiniFieldStorage('realname', 'Joe Doe') | 118 cgi.MiniFieldStorage('realname', 'Joe Doe') |
| 117 ] | 119 ] |
| 118 results = self.server.put_element('user', self.joeid, form) | 120 results = self.server.put_element('user', self.joeid, form) |
| 119 results = self.server.get_element('user', self.joeid, {}) | 121 results = self.server.get_element('user', self.joeid, self.empty_form) |
| 120 self.assertEqual(self.dummy_client.response_code, 200) | 122 self.assertEqual(self.dummy_client.response_code, 200) |
| 121 self.assertEqual(results['data']['attributes']['realname'], 'Joe Doe') | 123 self.assertEqual(results['data']['attributes']['realname'], 'Joe Doe') |
| 122 | 124 |
| 123 # check we can't change admin's details | 125 # check we can't change admin's details |
| 124 results = self.server.put_element('user', '1', form) | 126 results = self.server.put_element('user', '1', form) |
| 135 cgi.MiniFieldStorage('title', 'foo') | 137 cgi.MiniFieldStorage('title', 'foo') |
| 136 ] | 138 ] |
| 137 results = self.server.post_collection('issue', form) | 139 results = self.server.post_collection('issue', form) |
| 138 self.assertEqual(self.dummy_client.response_code, 201) | 140 self.assertEqual(self.dummy_client.response_code, 201) |
| 139 issueid = results['data']['id'] | 141 issueid = results['data']['id'] |
| 140 results = self.server.get_element('issue', issueid, {}) | 142 results = self.server.get_element('issue', issueid, self.empty_form) |
| 141 self.assertEqual(self.dummy_client.response_code, 200) | 143 self.assertEqual(self.dummy_client.response_code, 200) |
| 142 self.assertEqual(results['data']['attributes']['title'], 'foo') | 144 self.assertEqual(results['data']['attributes']['title'], 'foo') |
| 143 self.assertEqual(self.db.issue.get(issueid, "tx_Source"), 'web') | 145 self.assertEqual(self.db.issue.get(issueid, "tx_Source"), 'web') |
| 144 | 146 |
| 145 def testPostFile(self): | 147 def testPostFile(self): |
| 152 cgi.MiniFieldStorage('content', 'hello\r\nthere') | 154 cgi.MiniFieldStorage('content', 'hello\r\nthere') |
| 153 ] | 155 ] |
| 154 results = self.server.post_collection('file', form) | 156 results = self.server.post_collection('file', form) |
| 155 self.assertEqual(self.dummy_client.response_code, 201) | 157 self.assertEqual(self.dummy_client.response_code, 201) |
| 156 fileid = results['data']['id'] | 158 fileid = results['data']['id'] |
| 157 results = self.server.get_element('file', fileid, {})['data'] | 159 results = self.server.get_element('file', fileid, self.empty_form) |
| 160 results = results['data'] | |
| 158 self.assertEqual(self.dummy_client.response_code, 200) | 161 self.assertEqual(self.dummy_client.response_code, 200) |
| 159 self.assertEqual(results['attributes']['content'], 'hello\r\nthere') | 162 self.assertEqual(results['attributes']['content'], 'hello\r\nthere') |
| 160 | 163 |
| 161 def testAuthDeniedPut(self): | 164 def testAuthDeniedPut(self): |
| 162 """ | 165 """ |
| 222 # create a new issue with userid 1 in the nosy list | 225 # create a new issue with userid 1 in the nosy list |
| 223 issue_id = self.db.issue.create(title='foo', nosy=['1']) | 226 issue_id = self.db.issue.create(title='foo', nosy=['1']) |
| 224 | 227 |
| 225 # remove the title and nosy | 228 # remove the title and nosy |
| 226 results = self.server.delete_attribute( | 229 results = self.server.delete_attribute( |
| 227 'issue', issue_id, 'title', {} | 230 'issue', issue_id, 'title', self.empty_form |
| 228 ) | 231 ) |
| 229 self.assertEqual(self.dummy_client.response_code, 200) | 232 self.assertEqual(self.dummy_client.response_code, 200) |
| 230 | 233 |
| 231 results = self.server.delete_attribute( | 234 results = self.server.delete_attribute( |
| 232 'issue', issue_id, 'nosy', {} | 235 'issue', issue_id, 'nosy', self.empty_form |
| 233 ) | 236 ) |
| 234 self.assertEqual(self.dummy_client.response_code, 200) | 237 self.assertEqual(self.dummy_client.response_code, 200) |
| 235 | 238 |
| 236 # verify the result | 239 # verify the result |
| 237 results = self.server.get_element('issue', issue_id, {})['data'] | 240 results = self.server.get_element('issue', issue_id, self.empty_form) |
| 241 results = results['data'] | |
| 238 self.assertEqual(self.dummy_client.response_code, 200) | 242 self.assertEqual(self.dummy_client.response_code, 200) |
| 239 self.assertEqual(len(results['attributes']['nosy']), 0) | 243 self.assertEqual(len(results['attributes']['nosy']), 0) |
| 240 self.assertListEqual(results['attributes']['nosy'], []) | 244 self.assertListEqual(results['attributes']['nosy'], []) |
| 241 self.assertEqual(results['attributes']['title'], None) | 245 self.assertEqual(results['attributes']['title'], None) |
| 242 | 246 |
| 255 ] | 259 ] |
| 256 results = self.server.patch_element('issue', issue_id, form) | 260 results = self.server.patch_element('issue', issue_id, form) |
| 257 self.assertEqual(self.dummy_client.response_code, 200) | 261 self.assertEqual(self.dummy_client.response_code, 200) |
| 258 | 262 |
| 259 # verify the result | 263 # verify the result |
| 260 results = self.server.get_element('issue', issue_id, {})['data'] | 264 results = self.server.get_element('issue', issue_id, self.empty_form) |
| 265 results = results['data'] | |
| 261 self.assertEqual(self.dummy_client.response_code, 200) | 266 self.assertEqual(self.dummy_client.response_code, 200) |
| 262 self.assertEqual(len(results['attributes']['nosy']), 2) | 267 self.assertEqual(len(results['attributes']['nosy']), 2) |
| 263 self.assertListEqual(results['attributes']['nosy'], ['1', '2']) | 268 self.assertListEqual(results['attributes']['nosy'], ['1', '2']) |
| 264 | 269 |
| 265 def testPatchReplace(self): | 270 def testPatchReplace(self): |
| 278 ] | 283 ] |
| 279 results = self.server.patch_element('issue', issue_id, form) | 284 results = self.server.patch_element('issue', issue_id, form) |
| 280 self.assertEqual(self.dummy_client.response_code, 200) | 285 self.assertEqual(self.dummy_client.response_code, 200) |
| 281 | 286 |
| 282 # verify the result | 287 # verify the result |
| 283 results = self.server.get_element('issue', issue_id, {})['data'] | 288 results = self.server.get_element('issue', issue_id, self.empty_form) |
| 289 results = results['data'] | |
| 284 self.assertEqual(self.dummy_client.response_code, 200) | 290 self.assertEqual(self.dummy_client.response_code, 200) |
| 285 self.assertEqual(results['attributes']['status'], '3') | 291 self.assertEqual(results['attributes']['status'], '3') |
| 286 self.assertEqual(len(results['attributes']['nosy']), 1) | 292 self.assertEqual(len(results['attributes']['nosy']), 1) |
| 287 self.assertListEqual(results['attributes']['nosy'], ['2']) | 293 self.assertListEqual(results['attributes']['nosy'], ['2']) |
| 288 | 294 |
| 302 ] | 308 ] |
| 303 results = self.server.patch_element('issue', issue_id, form) | 309 results = self.server.patch_element('issue', issue_id, form) |
| 304 self.assertEqual(self.dummy_client.response_code, 200) | 310 self.assertEqual(self.dummy_client.response_code, 200) |
| 305 | 311 |
| 306 # verify the result | 312 # verify the result |
| 307 results = self.server.get_element('issue', issue_id, {})['data'] | 313 results = self.server.get_element('issue', issue_id, self.empty_form) |
| 314 results = results['data'] | |
| 308 self.assertEqual(self.dummy_client.response_code, 200) | 315 self.assertEqual(self.dummy_client.response_code, 200) |
| 309 self.assertEqual(results['attributes']['title'], None) | 316 self.assertEqual(results['attributes']['title'], None) |
| 310 self.assertEqual(len(results['attributes']['nosy']), 0) | 317 self.assertEqual(len(results['attributes']['nosy']), 0) |
| 311 self.assertEqual(results['attributes']['nosy'], []) | 318 self.assertEqual(results['attributes']['nosy'], []) |
| 312 | 319 |
