@@ -381,6 +381,80 @@ def test_get_private_published_state_unauthorized(self):
381381 self .assertEqual (request2 .status_code , status .HTTP_403_FORBIDDEN )
382382
383383 # Test updating a published state
384+ def test_update_public_published_state (self ):
385+ request = self .auth_client1 .put (
386+ "/v1/data/published/1/" , data = {"published" : False }
387+ )
388+ self .assertEqual (request .status_code , status .HTTP_200_OK )
389+ self .assertEqual (
390+ request .data ,
391+ {
392+ "published_state_id" : 1 ,
393+ "session_id" : 1 ,
394+ "title" : "Public Session" ,
395+ "published" : False ,
396+ "is_public" : True ,
397+ },
398+ )
399+ self .assertFalse (PublishedState .objects .get (id = 1 ).published )
400+ self .public_ps .save ()
401+
402+ def test_update_private_published_state (self ):
403+ request = self .auth_client1 .put (
404+ "/v1/data/published/2/" , data = {"published" : True }
405+ )
406+ self .assertEqual (request .status_code , status .HTTP_200_OK )
407+ self .assertEqual (
408+ request .data ,
409+ {
410+ "published_state_id" : 2 ,
411+ "session_id" : 2 ,
412+ "title" : "Private Session" ,
413+ "published" : True ,
414+ "is_public" : False ,
415+ },
416+ )
417+ self .assertTrue (PublishedState .objects .get (id = 2 ).published )
418+ self .private_ps .save ()
419+
420+ def test_update_unowned_published_state (self ):
421+ request1 = self .auth_client1 .put (
422+ "/v1/data/published/3/" , data = {"published" : False }
423+ )
424+ request2 = self .client .put ("/v1/data/published/3/" , data = {"published" : False })
425+ self .assertEqual (request1 .status_code , status .HTTP_403_FORBIDDEN )
426+ self .assertEqual (request2 .status_code , status .HTTP_401_UNAUTHORIZED )
427+ self .assertTrue (PublishedState .objects .get (id = 3 ).published )
428+
429+ def test_update_public_published_state_unauthorized (self ):
430+ request1 = self .auth_client2 .put (
431+ "/v1/data/published/1/" , data = {"published" : False }
432+ )
433+ self .public_session .users .add (self .user2 )
434+ request2 = self .auth_client2 .put (
435+ "/v1/data/published/1/" , data = {"published" : False }
436+ )
437+ self .public_session .users .remove (self .user2 )
438+ request3 = self .client .put ("/v1/data/published/1/" , data = {"published" : False })
439+ self .assertEqual (request1 .status_code , status .HTTP_403_FORBIDDEN )
440+ self .assertEqual (request2 .status_code , status .HTTP_403_FORBIDDEN )
441+ self .assertEqual (request3 .status_code , status .HTTP_401_UNAUTHORIZED )
442+ self .assertTrue (PublishedState .objects .get (id = 1 ).published )
443+
444+ def test_update_private_published_state_unauthorized (self ):
445+ request1 = self .auth_client2 .put (
446+ "/v1/data/published/2/" , data = {"published" : True }
447+ )
448+ self .public_session .users .add (self .user2 )
449+ request2 = self .auth_client2 .put (
450+ "/v1/data/published/2/" , data = {"published" : True }
451+ )
452+ self .public_session .users .remove (self .user2 )
453+ request3 = self .client .put ("/v1/data/published/2/" , data = {"published" : True })
454+ self .assertEqual (request1 .status_code , status .HTTP_403_FORBIDDEN )
455+ self .assertEqual (request2 .status_code , status .HTTP_403_FORBIDDEN )
456+ self .assertEqual (request3 .status_code , status .HTTP_401_UNAUTHORIZED )
457+ self .assertFalse (PublishedState .objects .get (id = 2 ).published )
384458
385459 # Test deleting a published state - session not deleted
386460
0 commit comments