@@ -31,6 +31,8 @@ def tearDownClass(cls):
3131
3232
3333class 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
266271class 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