Skip to content

Commit e60d975

Browse files
committed
Comments for PublishedState tests
1 parent 9c78647 commit e60d975

1 file changed

Lines changed: 28 additions & 10 deletions

File tree

sasdata/fair_database/data/test/test_published_state.py

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ def tearDownClass(cls):
3131

3232

3333
class TestPublishedStateView(APITestCase):
34+
"""Test HTTP methods of PublishedStateView."""
35+
3436
@classmethod
3537
def setUpTestData(cls):
3638
cls.user1 = User.objects.create_user(
@@ -74,7 +76,7 @@ def setUpTestData(cls):
7476
cls.auth_client1.force_authenticate(cls.user1)
7577
cls.auth_client2.force_authenticate(cls.user2)
7678

77-
# Test listing published states - various permissions
79+
# Test listing published states including those of owned private sessions
7880
def test_list_published_states_private(self):
7981
request = self.auth_client1.get("/v1/data/published/")
8082
self.assertEqual(request.status_code, status.HTTP_200_OK)
@@ -101,6 +103,7 @@ def test_list_published_states_private(self):
101103
},
102104
)
103105

106+
# Test listing published states of public sessions
104107
def test_list_published_states_public(self):
105108
request = self.auth_client2.get("/v1/data/published/")
106109
self.assertEqual(request.status_code, status.HTTP_200_OK)
@@ -122,6 +125,7 @@ def test_list_published_states_public(self):
122125
},
123126
)
124127

128+
# Test listing published states including sessions with access granted
125129
def test_list_published_states_shared(self):
126130
self.private_session.users.add(self.user2)
127131
request = self.auth_client2.get("/v1/data/published/")
@@ -150,6 +154,7 @@ def test_list_published_states_shared(self):
150154
},
151155
)
152156

157+
# Test listing published states while unauthenticated
153158
def test_list_published_states_unauthenticated(self):
154159
request = self.client.get("/v1/data/published/")
155160
self.assertEqual(request.status_code, status.HTTP_200_OK)
@@ -171,6 +176,7 @@ def test_list_published_states_unauthenticated(self):
171176
},
172177
)
173178

179+
# Test creating a published state for a private session
174180
def test_published_state_created_private(self):
175181
self.unpublished_session.is_public = False
176182
self.unpublished_session.save()
@@ -198,6 +204,7 @@ def test_published_state_created_private(self):
198204
self.unpublished_session.is_public = True
199205
self.unpublished_session.save()
200206

207+
# Test creating a published state for a public session
201208
def test_published_state_created_public(self):
202209
published_state = {"published": False, "session": 4}
203210
request = self.auth_client1.post("/v1/data/published/", data=published_state)
@@ -221,6 +228,7 @@ def test_published_state_created_public(self):
221228
self.assertEqual(new_ps.session, self.publishable_session)
222229
new_ps.delete()
223230

231+
# Test that you can't create a published state for an unowned session
224232
def test_published_state_created_unowned(self):
225233
self.unpublished_session.current_user = None
226234
self.unpublished_session.save()
@@ -231,29 +239,26 @@ def test_published_state_created_unowned(self):
231239
self.unpublished_session.current_user = self.user1
232240
self.unpublished_session.save()
233241

242+
# Test that an unauthenticated user cannot create a published state
234243
def test_published_state_created_unauthenticated(self):
235244
published_state = {"published": True, "session": 4}
236245
request = self.client.post("/v1/data/published/", data=published_state)
237246
self.assertEqual(request.status_code, status.HTTP_401_UNAUTHORIZED)
238247
self.assertEqual(len(PublishedState.objects.all()), 3)
239248

249+
# Test that a user cannot create a published state for a session they don't own
240250
def test_published_state_created_unauthorized(self):
241251
published_state = {"published": True, "session": 4}
242252
request = self.auth_client2.post("/v1/data/published/", data=published_state)
243253
self.assertEqual(request.status_code, status.HTTP_403_FORBIDDEN)
244254
self.assertEqual(len(PublishedState.objects.all()), 3)
245255

256+
# Test that only one published state can be created per session
246257
def test_no_duplicate_published_states(self):
247258
published_state = {"published": True, "session": 1}
248259
request = self.auth_client1.post("/v1/data/published/", data=published_state)
249260
self.assertEqual(request.status_code, status.HTTP_400_BAD_REQUEST)
250261

251-
# Test creating a published state
252-
253-
# Test can only create a published state for your own sessions
254-
255-
# Test can't create a second published state for a session
256-
257262
@classmethod
258263
def tearDownClass(cls):
259264
cls.public_session.delete()
@@ -264,6 +269,8 @@ def tearDownClass(cls):
264269

265270

266271
class TestSinglePublishedStateView(APITestCase):
272+
"""Test HTTP methods of SinglePublishedStateView."""
273+
267274
@classmethod
268275
def setUpTestData(cls):
269276
cls.user1 = User.objects.create_user(
@@ -304,7 +311,7 @@ def setUpTestData(cls):
304311
cls.auth_client1.force_authenticate(cls.user1)
305312
cls.auth_client2.force_authenticate(cls.user2)
306313

307-
# Test viewing a published state - various permissions
314+
# Test viewing a published state of a public session
308315
def test_get_public_published_state(self):
309316
request1 = self.auth_client2.get("/v1/data/published/1/")
310317
request2 = self.client.get("/v1/data/published/1/")
@@ -324,6 +331,7 @@ def test_get_public_published_state(self):
324331
)
325332
self.assertEqual(request1.data, request2.data)
326333

334+
# Test viewing a published state of a private session
327335
def test_get_private_published_state(self):
328336
request = self.auth_client1.get("/v1/data/published/2/")
329337
self.assertEqual(request.status_code, status.HTTP_200_OK)
@@ -340,6 +348,7 @@ def test_get_private_published_state(self):
340348
},
341349
)
342350

351+
# Test viewing a published state of an unowned session
343352
def test_get_unowned_published_state(self):
344353
request = self.auth_client1.get("/v1/data/published/3/")
345354
self.assertEqual(request.status_code, status.HTTP_200_OK)
@@ -356,6 +365,7 @@ def test_get_unowned_published_state(self):
356365
},
357366
)
358367

368+
# Test viewing a published state of a session with access granted
359369
def test_get_shared_published_state(self):
360370
self.private_session.users.add(self.user2)
361371
request = self.auth_client2.get("/v1/data/published/2/")
@@ -374,13 +384,14 @@ def test_get_shared_published_state(self):
374384
},
375385
)
376386

387+
# Test a user can't view a published state of a private session they don't own
377388
def test_get_private_published_state_unauthorized(self):
378389
request1 = self.client.get("/v1/data/published/2/")
379390
request2 = self.auth_client2.get("/v1/data/published/2/")
380391
self.assertEqual(request1.status_code, status.HTTP_401_UNAUTHORIZED)
381392
self.assertEqual(request2.status_code, status.HTTP_403_FORBIDDEN)
382393

383-
# Test updating a published state
394+
# Test updating a published state of a public session
384395
def test_update_public_published_state(self):
385396
request = self.auth_client1.put(
386397
"/v1/data/published/1/", data={"published": False}
@@ -399,6 +410,7 @@ def test_update_public_published_state(self):
399410
self.assertFalse(PublishedState.objects.get(id=1).published)
400411
self.public_ps.save()
401412

413+
# Test updating a published state of a private session
402414
def test_update_private_published_state(self):
403415
request = self.auth_client1.put(
404416
"/v1/data/published/2/", data={"published": True}
@@ -417,6 +429,7 @@ def test_update_private_published_state(self):
417429
self.assertTrue(PublishedState.objects.get(id=2).published)
418430
self.private_ps.save()
419431

432+
# Test a user can't update the published state of an unowned session
420433
def test_update_unowned_published_state(self):
421434
request1 = self.auth_client1.put(
422435
"/v1/data/published/3/", data={"published": False}
@@ -426,6 +439,7 @@ def test_update_unowned_published_state(self):
426439
self.assertEqual(request2.status_code, status.HTTP_401_UNAUTHORIZED)
427440
self.assertTrue(PublishedState.objects.get(id=3).published)
428441

442+
# Test a user can't update a public published state unauthorized
429443
def test_update_public_published_state_unauthorized(self):
430444
request1 = self.auth_client2.put(
431445
"/v1/data/published/1/", data={"published": False}
@@ -441,6 +455,7 @@ def test_update_public_published_state_unauthorized(self):
441455
self.assertEqual(request3.status_code, status.HTTP_401_UNAUTHORIZED)
442456
self.assertTrue(PublishedState.objects.get(id=1).published)
443457

458+
# Test a user can't update a private published state unauthorized
444459
def test_update_private_published_state_unauthorized(self):
445460
request1 = self.auth_client2.put(
446461
"/v1/data/published/2/", data={"published": True}
@@ -456,7 +471,7 @@ def test_update_private_published_state_unauthorized(self):
456471
self.assertEqual(request3.status_code, status.HTTP_401_UNAUTHORIZED)
457472
self.assertFalse(PublishedState.objects.get(id=2).published)
458473

459-
# Test deleting a published state - session not deleted
474+
# Test deleting a published state of a private session
460475
def test_delete_private_published_state(self):
461476
request = self.auth_client1.delete("/v1/data/published/2/")
462477
self.assertEqual(request.status_code, status.HTTP_200_OK)
@@ -470,6 +485,7 @@ def test_delete_private_published_state(self):
470485
session=self.private_session,
471486
)
472487

488+
# Test a user can't delete a private published state unauthorized
473489
def test_delete_private_published_state_unauthorized(self):
474490
request1 = self.auth_client2.delete("/v1/data/published/2/")
475491
self.private_session.users.add(self.user2)
@@ -480,10 +496,12 @@ def test_delete_private_published_state_unauthorized(self):
480496
self.assertEqual(request2.status_code, status.HTTP_403_FORBIDDEN)
481497
self.assertEqual(request3.status_code, status.HTTP_401_UNAUTHORIZED)
482498

499+
# Test a user can't delete a published state of a public
483500
def test_cant_delete_public_published_state(self):
484501
request = self.auth_client1.delete("/v1/data/published/1/")
485502
self.assertEqual(request.status_code, status.HTTP_403_FORBIDDEN)
486503

504+
# Test a user can't delete an unowned published state
487505
def test_delete_unowned_published_state(self):
488506
request = self.auth_client1.delete("/v1/data/published/3/")
489507
self.assertEqual(request.status_code, status.HTTP_403_FORBIDDEN)

0 commit comments

Comments
 (0)