Skip to content

Commit da15bf4

Browse files
committed
Fix tests for latest REST changes
1 parent 911b890 commit da15bf4

File tree

1 file changed

+57
-40
lines changed

1 file changed

+57
-40
lines changed

test/rest_common.py

Lines changed: 57 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
class TestCase():
2525

2626
backend = None
27+
url_pfx = 'http://tracker.example/cgi-bin/roundup.cgi/bugs/rest/data/'
2728

2829
def setUp(self):
2930
self.dirname = '_test_rest'
@@ -71,6 +72,10 @@ def setUp(self):
7172
self.dummy_client = client.Client(self.instance, MockNull(), env, [], None)
7273
self.dummy_client.request.headers.get = self.get_header
7374
self.empty_form = cgi.FieldStorage()
75+
self.terse_form = cgi.FieldStorage()
76+
self.terse_form.list = [
77+
cgi.MiniFieldStorage('@verbose', '0'),
78+
]
7479

7580
self.server = RestfulInstance(self.dummy_client, self.db)
7681

@@ -175,7 +180,7 @@ def testFilter(self):
175180
# Retrieve all issue status=open
176181
form = cgi.FieldStorage()
177182
form.list = [
178-
cgi.MiniFieldStorage('where_status', 'open')
183+
cgi.MiniFieldStorage('status', 'open')
179184
]
180185
results = self.server.get_collection('issue', form)
181186
self.assertEqual(self.dummy_client.response_code, 200)
@@ -191,8 +196,8 @@ def testFilter(self):
191196
# Retrieve all issue status=closed and priority=critical
192197
form = cgi.FieldStorage()
193198
form.list = [
194-
cgi.MiniFieldStorage('where_status', 'closed'),
195-
cgi.MiniFieldStorage('where_priority', 'critical')
199+
cgi.MiniFieldStorage('status', 'closed'),
200+
cgi.MiniFieldStorage('priority', 'critical')
196201
]
197202
results = self.server.get_collection('issue', form)
198203
self.assertEqual(self.dummy_client.response_code, 200)
@@ -208,8 +213,8 @@ def testFilter(self):
208213
# Retrieve all issue status=closed and priority=normal,critical
209214
form = cgi.FieldStorage()
210215
form.list = [
211-
cgi.MiniFieldStorage('where_status', 'closed'),
212-
cgi.MiniFieldStorage('where_priority', 'normal,critical')
216+
cgi.MiniFieldStorage('status', 'closed'),
217+
cgi.MiniFieldStorage('priority', 'normal,critical')
213218
]
214219
results = self.server.get_collection('issue', form)
215220
self.assertEqual(self.dummy_client.response_code, 200)
@@ -259,8 +264,8 @@ def testPagination(self):
259264
# Retrieve page 1
260265
form = cgi.FieldStorage()
261266
form.list = [
262-
cgi.MiniFieldStorage('page_size', page_size),
263-
cgi.MiniFieldStorage('page_index', 1)
267+
cgi.MiniFieldStorage('@page_size', page_size),
268+
cgi.MiniFieldStorage('@page_index', 1)
264269
]
265270
results = self.server.get_collection('issue', form)
266271
self.assertEqual(self.dummy_client.response_code, 200)
@@ -271,17 +276,17 @@ def testPagination(self):
271276
self.assertTrue('next' in results['data']['@links'])
272277
self.assertFalse('prev' in results['data']['@links'])
273278
self.assertEqual(results['data']['@links']['self'][0]['uri'],
274-
"%s?page_index=1&page_size=%s"%(base_url,page_size))
279+
"%s?@page_index=1&@page_size=%s"%(base_url,page_size))
275280
self.assertEqual(results['data']['@links']['next'][0]['uri'],
276-
"%s?page_index=2&page_size=%s"%(base_url,page_size))
281+
"%s?@page_index=2&@page_size=%s"%(base_url,page_size))
277282

278283
page_one_results = results # save this for later
279284

280285
# Retrieve page 2
281286
form = cgi.FieldStorage()
282287
form.list = [
283-
cgi.MiniFieldStorage('page_size', page_size),
284-
cgi.MiniFieldStorage('page_index', 2)
288+
cgi.MiniFieldStorage('@page_size', page_size),
289+
cgi.MiniFieldStorage('@page_index', 2)
285290
]
286291
results = self.server.get_collection('issue', form)
287292
self.assertEqual(self.dummy_client.response_code, 200)
@@ -291,11 +296,11 @@ def testPagination(self):
291296
self.assertTrue('next' in results['data']['@links'])
292297
self.assertTrue('prev' in results['data']['@links'])
293298
self.assertEqual(results['data']['@links']['self'][0]['uri'],
294-
"http://tracker.example/cgi-bin/roundup.cgi/bugs/rest/data/issue?page_index=2&page_size=%s"%page_size)
299+
"http://tracker.example/cgi-bin/roundup.cgi/bugs/rest/data/issue?@page_index=2&@page_size=%s"%page_size)
295300
self.assertEqual(results['data']['@links']['next'][0]['uri'],
296-
"http://tracker.example/cgi-bin/roundup.cgi/bugs/rest/data/issue?page_index=3&page_size=%s"%page_size)
301+
"http://tracker.example/cgi-bin/roundup.cgi/bugs/rest/data/issue?@page_index=3&@page_size=%s"%page_size)
297302
self.assertEqual(results['data']['@links']['prev'][0]['uri'],
298-
"http://tracker.example/cgi-bin/roundup.cgi/bugs/rest/data/issue?page_index=1&page_size=%s"%page_size)
303+
"http://tracker.example/cgi-bin/roundup.cgi/bugs/rest/data/issue?@page_index=1&@page_size=%s"%page_size)
299304
self.assertEqual(results['data']['@links']['self'][0]['rel'],
300305
'self')
301306
self.assertEqual(results['data']['@links']['next'][0]['rel'],
@@ -306,8 +311,8 @@ def testPagination(self):
306311
# Retrieve page 3
307312
form = cgi.FieldStorage()
308313
form.list = [
309-
cgi.MiniFieldStorage('page_size', page_size),
310-
cgi.MiniFieldStorage('page_index', 3)
314+
cgi.MiniFieldStorage('@page_size', page_size),
315+
cgi.MiniFieldStorage('@page_index', 3)
311316
]
312317
results = self.server.get_collection('issue', form)
313318
self.assertEqual(self.dummy_client.response_code, 200)
@@ -317,15 +322,15 @@ def testPagination(self):
317322
self.assertFalse('next' in results['data']['@links'])
318323
self.assertTrue('prev' in results['data']['@links'])
319324
self.assertEqual(results['data']['@links']['self'][0]['uri'],
320-
"http://tracker.example/cgi-bin/roundup.cgi/bugs/rest/data/issue?page_index=3&page_size=%s"%page_size)
325+
"http://tracker.example/cgi-bin/roundup.cgi/bugs/rest/data/issue?@page_index=3&@page_size=%s"%page_size)
321326
self.assertEqual(results['data']['@links']['prev'][0]['uri'],
322-
"http://tracker.example/cgi-bin/roundup.cgi/bugs/rest/data/issue?page_index=2&page_size=%s"%page_size)
327+
"http://tracker.example/cgi-bin/roundup.cgi/bugs/rest/data/issue?@page_index=2&@page_size=%s"%page_size)
323328

324329
# Verify that page_index is optional
325330
# Should start at page 1
326331
form = cgi.FieldStorage()
327332
form.list = [
328-
cgi.MiniFieldStorage('page_size', page_size),
333+
cgi.MiniFieldStorage('@page_size', page_size),
329334
]
330335
results = self.server.get_collection('issue', form)
331336
self.assertEqual(self.dummy_client.response_code, 200)
@@ -696,6 +701,17 @@ def testPostFile(self):
696701
results = self.server.get_element('file', fileid, self.empty_form)
697702
results = results['data']
698703
self.assertEqual(self.dummy_client.response_code, 200)
704+
self.assertEqual(results['attributes']['content'],
705+
{'link': 'http://tracker.example/cgi-bin/roundup.cgi/bugs/file1/'})
706+
707+
# File content is only shown with verbose=3
708+
form = cgi.FieldStorage()
709+
form.list = [
710+
cgi.MiniFieldStorage('@verbose', '3')
711+
]
712+
results = self.server.get_element('file', fileid, form)
713+
results = results['data']
714+
self.assertEqual(self.dummy_client.response_code, 200)
699715
self.assertEqual(results['attributes']['content'], 'hello\r\nthere')
700716

701717
def testAuthDeniedPut(self):
@@ -772,7 +788,8 @@ def testDeleteAttributeUri(self):
772788
results = results['data']
773789
self.assertEqual(self.dummy_client.response_code, 200)
774790
self.assertEqual(len(results['attributes']['nosy']), 1)
775-
self.assertListEqual(results['attributes']['nosy'], ['1'])
791+
self.assertListEqual(results['attributes']['nosy'],
792+
[{'id': '1', 'link': self.url_pfx + 'user/1'}])
776793

777794
form = cgi.FieldStorage()
778795
etag = calculate_etag(self.db.issue.getnode(issue_id))
@@ -792,7 +809,7 @@ def testDeleteAttributeUri(self):
792809
self.assertEqual(self.dummy_client.response_code, 200)
793810

794811
# verify the result
795-
results = self.server.get_element('issue', issue_id, self.empty_form)
812+
results = self.server.get_element('issue', issue_id, self.terse_form)
796813
results = results['data']
797814
self.assertEqual(self.dummy_client.response_code, 200)
798815
self.assertEqual(len(results['attributes']['nosy']), 0)
@@ -810,7 +827,7 @@ def testPatchAdd(self):
810827
# no etag
811828
form = cgi.FieldStorage()
812829
form.list = [
813-
cgi.MiniFieldStorage('op', 'add'),
830+
cgi.MiniFieldStorage('@op', 'add'),
814831
cgi.MiniFieldStorage('nosy', '2')
815832
]
816833
results = self.server.patch_element('issue', issue_id, form)
@@ -819,15 +836,15 @@ def testPatchAdd(self):
819836
etag = calculate_etag(self.db.issue.getnode(issue_id))
820837
form = cgi.FieldStorage()
821838
form.list = [
822-
cgi.MiniFieldStorage('op', 'add'),
839+
cgi.MiniFieldStorage('@op', 'add'),
823840
cgi.MiniFieldStorage('nosy', '2'),
824841
cgi.MiniFieldStorage('@etag', etag)
825842
]
826843
results = self.server.patch_element('issue', issue_id, form)
827844
self.assertEqual(self.dummy_client.response_code, 200)
828845

829846
# verify the result
830-
results = self.server.get_element('issue', issue_id, self.empty_form)
847+
results = self.server.get_element('issue', issue_id, self.terse_form)
831848
results = results['data']
832849
self.assertEqual(self.dummy_client.response_code, 200)
833850
self.assertEqual(len(results['attributes']['nosy']), 2)
@@ -844,13 +861,13 @@ def testPatchReplace(self):
844861
# no etag.
845862
form = cgi.FieldStorage()
846863
form.list = [
847-
cgi.MiniFieldStorage('op', 'replace'),
864+
cgi.MiniFieldStorage('@op', 'replace'),
848865
cgi.MiniFieldStorage('nosy', '2'),
849866
cgi.MiniFieldStorage('status', '3')
850867
]
851868
results = self.server.patch_element('issue', issue_id, form)
852869
self.assertEqual(self.dummy_client.response_code, 412)
853-
results = self.server.get_element('issue', issue_id, self.empty_form)
870+
results = self.server.get_element('issue', issue_id, self.terse_form)
854871
results = results['data']
855872
self.assertEqual(self.dummy_client.response_code, 200)
856873
self.assertEqual(results['attributes']['status'], '1')
@@ -861,15 +878,15 @@ def testPatchReplace(self):
861878
etag = calculate_etag(self.db.issue.getnode(issue_id))
862879
form = cgi.FieldStorage()
863880
form.list = [
864-
cgi.MiniFieldStorage('op', 'replace'),
881+
cgi.MiniFieldStorage('@op', 'replace'),
865882
cgi.MiniFieldStorage('nosy', '2'),
866883
cgi.MiniFieldStorage('status', '3'),
867884
cgi.MiniFieldStorage('@etag', etag)
868885
]
869886
results = self.server.patch_element('issue', issue_id, form)
870887
self.assertEqual(self.dummy_client.response_code, 200)
871888
# verify the result
872-
results = self.server.get_element('issue', issue_id, self.empty_form)
889+
results = self.server.get_element('issue', issue_id, self.terse_form)
873890
results = results['data']
874891
self.assertEqual(self.dummy_client.response_code, 200)
875892
self.assertEqual(results['attributes']['status'], '3')
@@ -887,13 +904,13 @@ def testPatchRemoveAll(self):
887904
# no etag
888905
form = cgi.FieldStorage()
889906
form.list = [
890-
cgi.MiniFieldStorage('op', 'remove'),
907+
cgi.MiniFieldStorage('@op', 'remove'),
891908
cgi.MiniFieldStorage('nosy', ''),
892909
cgi.MiniFieldStorage('title', '')
893910
]
894911
results = self.server.patch_element('issue', issue_id, form)
895912
self.assertEqual(self.dummy_client.response_code, 412)
896-
results = self.server.get_element('issue', issue_id, self.empty_form)
913+
results = self.server.get_element('issue', issue_id, self.terse_form)
897914
results = results['data']
898915
self.assertEqual(self.dummy_client.response_code, 200)
899916
self.assertEqual(results['attributes']['title'], 'foo')
@@ -904,7 +921,7 @@ def testPatchRemoveAll(self):
904921
form = cgi.FieldStorage()
905922
etag = calculate_etag(self.db.issue.getnode(issue_id))
906923
form.list = [
907-
cgi.MiniFieldStorage('op', 'remove'),
924+
cgi.MiniFieldStorage('@op', 'remove'),
908925
cgi.MiniFieldStorage('nosy', ''),
909926
cgi.MiniFieldStorage('title', ''),
910927
cgi.MiniFieldStorage('@etag', etag)
@@ -913,7 +930,7 @@ def testPatchRemoveAll(self):
913930
self.assertEqual(self.dummy_client.response_code, 200)
914931

915932
# verify the result
916-
results = self.server.get_element('issue', issue_id, self.empty_form)
933+
results = self.server.get_element('issue', issue_id, self.terse_form)
917934
results = results['data']
918935
self.assertEqual(self.dummy_client.response_code, 200)
919936
self.assertEqual(results['attributes']['title'], None)
@@ -931,8 +948,8 @@ def testPatchAction(self):
931948
# no etag
932949
form = cgi.FieldStorage()
933950
form.list = [
934-
cgi.MiniFieldStorage('op', 'action'),
935-
cgi.MiniFieldStorage('action_name', 'retire')
951+
cgi.MiniFieldStorage('@op', 'action'),
952+
cgi.MiniFieldStorage('@action_name', 'retire')
936953
]
937954
results = self.server.patch_element('issue', issue_id, form)
938955
self.assertEqual(self.dummy_client.response_code, 412)
@@ -942,8 +959,8 @@ def testPatchAction(self):
942959
form = cgi.FieldStorage()
943960
etag = calculate_etag(self.db.issue.getnode(issue_id))
944961
form.list = [
945-
cgi.MiniFieldStorage('op', 'action'),
946-
cgi.MiniFieldStorage('action_name', 'retire'),
962+
cgi.MiniFieldStorage('@op', 'action'),
963+
cgi.MiniFieldStorage('@action_name', 'retire'),
947964
cgi.MiniFieldStorage('@etag', etag)
948965
]
949966
results = self.server.patch_element('issue', issue_id, form)
@@ -963,12 +980,12 @@ def testPatchRemove(self):
963980
# no etag
964981
form = cgi.FieldStorage()
965982
form.list = [
966-
cgi.MiniFieldStorage('op', 'remove'),
983+
cgi.MiniFieldStorage('@op', 'remove'),
967984
cgi.MiniFieldStorage('nosy', '1, 2'),
968985
]
969986
results = self.server.patch_element('issue', issue_id, form)
970987
self.assertEqual(self.dummy_client.response_code, 412)
971-
results = self.server.get_element('issue', issue_id, self.empty_form)
988+
results = self.server.get_element('issue', issue_id, self.terse_form)
972989
results = results['data']
973990
self.assertEqual(self.dummy_client.response_code, 200)
974991
self.assertEqual(len(results['attributes']['nosy']), 3)
@@ -978,15 +995,15 @@ def testPatchRemove(self):
978995
form = cgi.FieldStorage()
979996
etag = calculate_etag(self.db.issue.getnode(issue_id))
980997
form.list = [
981-
cgi.MiniFieldStorage('op', 'remove'),
998+
cgi.MiniFieldStorage('@op', 'remove'),
982999
cgi.MiniFieldStorage('nosy', '1, 2'),
9831000
cgi.MiniFieldStorage('@etag', etag)
9841001
]
9851002
results = self.server.patch_element('issue', issue_id, form)
9861003
self.assertEqual(self.dummy_client.response_code, 200)
9871004

9881005
# verify the result
989-
results = self.server.get_element('issue', issue_id, self.empty_form)
1006+
results = self.server.get_element('issue', issue_id, self.terse_form)
9901007
results = results['data']
9911008
self.assertEqual(self.dummy_client.response_code, 200)
9921009
self.assertEqual(len(results['attributes']['nosy']), 1)

0 commit comments

Comments
 (0)