@@ -42,38 +42,45 @@ def setUpTestData(cls):
4242
4343 # Test list public data
4444 def test_does_list_public (self ):
45- request = self .client1 .get ("/v1/data/list/" )
46- self .assertEqual (request .data , {"public_data_ids" : {1 : "cyl_400_40.txt" }})
45+ request = self .client1 .get ("/v1/data/file/" )
46+ self .assertEqual (
47+ request .data ,
48+ {"public_data_ids" : {1 : "cyl_400_40.txt" , 3 : "cyl_400_20.txt" }},
49+ )
4750
4851 # Test list a user's private data
4952 def test_does_list_user (self ):
50- request = self .client1 .get ("/v1/data/list/testUser/" , user = self .user )
53+ request = self .client1 .get (
54+ "/v1/data/file/" , data = {"username" : "testUser" }, user = self .user
55+ )
5156 self .assertEqual (request .data , {"user_data_ids" : {3 : "cyl_400_20.txt" }})
5257
5358 # Test list another user's public data
5459 def test_list_other_user (self ):
5560 client2 = APIClient ()
56- request = client2 .get ("/v1/data/list/testUser/" , user = self .user )
61+ request = client2 .get (
62+ "/v1/data/file/" , data = {"username" : "testUser" }, user = self .user
63+ )
5764 self .assertEqual (request .data , {"user_data_ids" : {}})
5865
5966 # Test list a nonexistent user's data
6067 def test_list_nonexistent_user (self ):
61- request = self .client1 .get ("/v1/data/list/ fakeUser/" )
68+ request = self .client1 .get ("/v1/data/file/" , data = { "username" : " fakeUser" } )
6269 self .assertEqual (request .status_code , status .HTTP_404_NOT_FOUND )
6370
6471 # Test loading a public data file
6572 def test_does_load_data_info_public (self ):
66- request = self .client1 .get ("/v1/data/load /1/" )
73+ request = self .client1 .get ("/v1/data/file /1/" )
6774 self .assertEqual (request .status_code , status .HTTP_200_OK )
6875
6976 # Test loading private data with authorization
7077 def test_does_load_data_info_private (self ):
71- request = self .client1 .get ("/v1/data/load /3/" )
78+ request = self .client1 .get ("/v1/data/file /3/" )
7279 self .assertEqual (request .status_code , status .HTTP_200_OK )
7380
7481 # Test loading data that does not exist
7582 def test_load_data_info_nonexistent (self ):
76- request = self .client1 .get ("/v1/data/load /5/" )
83+ request = self .client1 .get ("/v1/data/file /5/" )
7784 self .assertEqual (request .status_code , status .HTTP_404_NOT_FOUND )
7885
7986 @classmethod
@@ -104,7 +111,7 @@ def setUpTestData(cls):
104111 def test_is_data_being_created (self ):
105112 file = open (find ("cyl_400_40.txt" ), "rb" )
106113 data = {"is_public" : False , "file" : file }
107- request = self .client1 .post ("/v1/data/upload /" , data = data )
114+ request = self .client1 .post ("/v1/data/file /" , data = data )
108115 max_id = DataFile .objects .aggregate (Max ("id" ))["id__max" ]
109116 self .assertEqual (request .status_code , status .HTTP_201_CREATED )
110117 self .assertEqual (
@@ -123,7 +130,7 @@ def test_is_data_being_created(self):
123130 def test_is_data_being_created_no_user (self ):
124131 file = open (find ("cyl_testdata.txt" ), "rb" )
125132 data = {"is_public" : True , "file" : file }
126- request = self .client2 .post ("/v1/data/upload /" , data = data )
133+ request = self .client2 .post ("/v1/data/file /" , data = data )
127134 max_id = DataFile .objects .aggregate (Max ("id" ))["id__max" ]
128135 self .assertEqual (request .status_code , status .HTTP_201_CREATED )
129136 self .assertEqual (
@@ -142,7 +149,7 @@ def test_is_data_being_created_no_user(self):
142149 def test_no_data_overwrite (self ):
143150 file = open (find ("apoferritin.txt" ))
144151 data = {"is_public" : True , "file" : file , id : 1 }
145- request = self .client1 .post ("/v1/data/upload /" , data = data )
152+ request = self .client1 .post ("/v1/data/file /" , data = data )
146153 self .assertEqual (request .status_code , status .HTTP_201_CREATED )
147154 self .assertEqual (DataFile .objects .get (id = 1 ).file_name , "cyl_400_20.txt" )
148155 max_id = DataFile .objects .aggregate (Max ("id" ))["id__max" ]
@@ -162,7 +169,7 @@ def test_no_data_overwrite(self):
162169 def test_does_file_upload_update (self ):
163170 file = open (find ("cyl_testdata1.txt" ))
164171 data = {"file" : file , "is_public" : False }
165- request = self .client1 .put ("/v1/data/upload /1/" , data = data )
172+ request = self .client1 .put ("/v1/data/file /1/" , data = data )
166173 self .assertEqual (
167174 request .data ,
168175 {
@@ -186,7 +193,7 @@ def test_public_file_upload_update(self):
186193 )
187194 file = open (find ("conalbumin.txt" ))
188195 data = {"file" : file , "is_public" : True }
189- request = self .client1 .put ("/v1/data/upload /3/" , data = data )
196+ request = self .client1 .put ("/v1/data/file /3/" , data = data )
190197 self .assertEqual (
191198 request .data ,
192199 {
@@ -203,46 +210,46 @@ def test_public_file_upload_update(self):
203210 def test_unauthorized_file_upload_update (self ):
204211 file = open (find ("cyl_400_40.txt" ))
205212 data = {"file" : file , "is_public" : False }
206- request = self .client2 .put ("/v1/data/upload /1/" , data = data )
213+ request = self .client2 .put ("/v1/data/file /1/" , data = data )
207214 self .assertEqual (request .status_code , status .HTTP_401_UNAUTHORIZED )
208215
209216 # Test update nonexistent file fails
210217 def test_file_upload_update_not_found (self ):
211218 file = open (find ("cyl_400_40.txt" ))
212219 data = {"file" : file , "is_public" : False }
213- request = self .client2 .put ("/v1/data/upload /5/" , data = data )
220+ request = self .client2 .put ("/v1/data/file /5/" , data = data )
214221 self .assertEqual (request .status_code , status .HTTP_404_NOT_FOUND )
215222
216223 # Test file download
217224 def test_does_download (self ):
218- request = self .client1 .get ("/v1/data/1/ download/" )
225+ request = self .client1 .get ("/v1/data/file/1/" , data = { " download" : True } )
219226 file_contents = b"" .join (request .streaming_content )
220227 test_file = open (find ("cyl_400_20.txt" ), "rb" )
221228 self .assertEqual (request .status_code , status .HTTP_200_OK )
222229 self .assertEqual (file_contents , test_file .read ())
223230
224231 # Test file download fails when unauthorized
225232 def test_unauthorized_download (self ):
226- request2 = self .client2 .get ("/v1/data/1/ download/" )
233+ request2 = self .client2 .get ("/v1/data/file/1/" , data = { " download" : True } )
227234 self .assertEqual (request2 .status_code , status .HTTP_401_UNAUTHORIZED )
228235
229236 # Test download nonexistent file
230237 def test_download_nonexistent (self ):
231- request = self .client1 .get ("/v1/data/5/ download/" )
238+ request = self .client1 .get ("/v1/data/file/5/" , data = { " download" : True } )
232239 self .assertEqual (request .status_code , status .HTTP_404_NOT_FOUND )
233240
234241 # Test deleting a file
235242 def test_delete (self ):
236243 DataFile .objects .create (
237244 id = 6 , current_user = self .user , file_name = "test.txt" , is_public = False
238245 )
239- request = self .client1 .delete ("/v1/data/delete /6/" )
246+ request = self .client1 .delete ("/v1/data/file /6/" )
240247 self .assertEqual (request .status_code , status .HTTP_200_OK )
241248 self .assertFalse (DataFile .objects .filter (pk = 6 ).exists ())
242249
243250 # Test deleting a file fails when unauthorized
244251 def test_delete_unauthorized (self ):
245- request = self .client2 .delete ("/v1/data/delete /1/" )
252+ request = self .client2 .delete ("/v1/data/file /1/" )
246253 self .assertEqual (request .status_code , status .HTTP_401_UNAUTHORIZED )
247254
248255 @classmethod
@@ -279,86 +286,86 @@ def setUpTestData(cls):
279286
280287 # test viewing no one with access
281288 def test_view_no_access (self ):
282- request = self .client1 .get ("/v1/data/manage/1 /" )
289+ request = self .client1 .get ("/v1/data/file/1/users /" )
283290 data = {"file" : 1 , "file_name" : "cyl_400_40.txt" , "users" : []}
284291 self .assertEqual (request .status_code , status .HTTP_200_OK )
285292 self .assertEqual (request .data , data )
286293
287294 # test viewing list of users with access
288295 def test_view_access (self ):
289- request = self .client1 .get ("/v1/data/manage/2 /" )
296+ request = self .client1 .get ("/v1/data/file/2/users /" )
290297 data = {"file" : 2 , "file_name" : "cyl_400_20.txt" , "users" : ["testUser2" ]}
291298 self .assertEqual (request .status_code , status .HTTP_200_OK )
292299 self .assertEqual (request .data , data )
293300
294301 # test granting another user access to private data
295302 def test_grant_access (self ):
296303 data = {"username" : "testUser2" , "access" : True }
297- request1 = self .client1 .put ("/v1/data/manage/1 /" , data = data )
298- request2 = self .client2 .get ("/v1/data/load /1/" )
304+ request1 = self .client1 .put ("/v1/data/file/1/users /" , data = data )
305+ request2 = self .client2 .get ("/v1/data/file /1/" )
299306 self .assertEqual (request1 .status_code , status .HTTP_200_OK )
300307 self .assertEqual (request2 .status_code , status .HTTP_200_OK )
301308
302309 # test removing another user's access to private data
303310 def test_remove_access (self ):
304311 data = {"username" : "testUser2" , "access" : False }
305- request1 = self .client2 .get ("/v1/data/load /2/" )
306- request2 = self .client1 .put ("/v1/data/manage/2 /" , data = data )
307- request3 = self .client2 .get ("/v1/data/load /2/" )
312+ request1 = self .client2 .get ("/v1/data/file /2/" )
313+ request2 = self .client1 .put ("/v1/data/file/2/users /" , data = data )
314+ request3 = self .client2 .get ("/v1/data/file /2/" )
308315 self .assertEqual (request1 .status_code , status .HTTP_200_OK )
309316 self .assertEqual (request2 .status_code , status .HTTP_200_OK )
310317 self .assertEqual (request3 .status_code , status .HTTP_403_FORBIDDEN )
311318
312319 # test removing access from a user that already lacks access
313320 def test_remove_no_access (self ):
314321 data = {"username" : "testUser2" , "access" : False }
315- request1 = self .client2 .get ("/v1/data/load /1/" )
316- request2 = self .client1 .put ("/v1/data/manage/1 /" , data = data )
317- request3 = self .client2 .get ("/v1/data/load /1/" )
322+ request1 = self .client2 .get ("/v1/data/file /1/" )
323+ request2 = self .client1 .put ("/v1/data/file/1/users /" , data = data )
324+ request3 = self .client2 .get ("/v1/data/file /1/" )
318325 self .assertEqual (request1 .status_code , status .HTTP_403_FORBIDDEN )
319326 self .assertEqual (request2 .status_code , status .HTTP_200_OK )
320327 self .assertEqual (request3 .status_code , status .HTTP_403_FORBIDDEN )
321328
322329 # test owner's access cannot be removed
323330 def test_cant_revoke_own_access (self ):
324331 data = {"username" : "testUser" , "access" : False }
325- request1 = self .client1 .put ("/v1/data/manage/1 /" , data = data )
326- request2 = self .client1 .get ("/v1/data/load /1/" )
332+ request1 = self .client1 .put ("/v1/data/file/1/users /" , data = data )
333+ request2 = self .client1 .get ("/v1/data/file /1/" )
327334 self .assertEqual (request1 .status_code , status .HTTP_200_OK )
328335 self .assertEqual (request2 .status_code , status .HTTP_200_OK )
329336
330337 # test giving access to a user that already has access
331338 def test_grant_existing_access (self ):
332339 data = {"username" : "testUser2" , "access" : True }
333- request1 = self .client2 .get ("/v1/data/load /2/" )
334- request2 = self .client1 .put ("/v1/data/manage/2 /" , data = data )
335- request3 = self .client2 .get ("/v1/data/load /2/" )
340+ request1 = self .client2 .get ("/v1/data/file /2/" )
341+ request2 = self .client1 .put ("/v1/data/file/2/users /" , data = data )
342+ request3 = self .client2 .get ("/v1/data/file /2/" )
336343 self .assertEqual (request1 .status_code , status .HTTP_200_OK )
337344 self .assertEqual (request2 .status_code , status .HTTP_200_OK )
338345 self .assertEqual (request3 .status_code , status .HTTP_200_OK )
339346
340347 # test that access is read-only for the file
341348 def test_no_edit_access (self ):
342349 data = {"is_public" : True }
343- request = self .client2 .put ("/v1/data/upload /2/" , data = data )
350+ request = self .client2 .put ("/v1/data/file /2/" , data = data )
344351 self .assertEqual (request .status_code , status .HTTP_403_FORBIDDEN )
345352 self .assertFalse (self .shared_test_data .is_public )
346353
347354 # test that only the owner can view who has access
348355 def test_only_view_access_to_owned_file (self ):
349- request1 = self .client2 .get ("/v1/data/manage/1 /" )
350- request2 = self .client2 .get ("/v1/data/manage/2 /" )
356+ request1 = self .client2 .get ("/v1/data/file/1/users /" )
357+ request2 = self .client2 .get ("/v1/data/file/2/users /" )
351358 self .assertEqual (request1 .status_code , status .HTTP_403_FORBIDDEN )
352359 self .assertEqual (request2 .status_code , status .HTTP_403_FORBIDDEN )
353360
354361 # test that only the owner can change access
355362 def test_only_edit_access_to_owned_file (self ):
356363 data1 = {"username" : "testUser2" , "access" : True }
357364 data2 = {"username" : "testUser1" , "access" : False }
358- request1 = self .client2 .put ("/v1/data/manage/1 /" , data = data1 )
359- request2 = self .client2 .put ("/v1/data/manage/2 /" , data = data2 )
360- request3 = self .client2 .get ("/v1/data/load /1/" )
361- request4 = self .client1 .get ("/v1/data/load /2/" )
365+ request1 = self .client2 .put ("/v1/data/file/1/users /" , data = data1 )
366+ request2 = self .client2 .put ("/v1/data/file/2/users /" , data = data2 )
367+ request3 = self .client2 .get ("/v1/data/file /1/" )
368+ request4 = self .client1 .get ("/v1/data/file /2/" )
362369 self .assertEqual (request1 .status_code , status .HTTP_403_FORBIDDEN )
363370 self .assertEqual (request2 .status_code , status .HTTP_403_FORBIDDEN )
364371 self .assertEqual (request3 .status_code , status .HTTP_403_FORBIDDEN )
0 commit comments