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

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