Skip to content

Commit e13528e

Browse files
committed
Update tests for url changes
1 parent dc7a185 commit e13528e

3 files changed

Lines changed: 100 additions & 90 deletions

File tree

sasdata/fair_database/data/test/test_datafile.py

Lines changed: 49 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)