@@ -457,6 +457,36 @@ def test_update_private_published_state_unauthorized(self):
457457 self .assertFalse (PublishedState .objects .get (id = 2 ).published )
458458
459459 # Test deleting a published state - session not deleted
460+ def test_delete_private_published_state (self ):
461+ request = self .auth_client1 .delete ("/v1/data/published/2/" )
462+ self .assertEqual (request .status_code , status .HTTP_200_OK )
463+ self .assertEqual (len (PublishedState .objects .all ()), 2 )
464+ self .assertEqual (len (Session .objects .all ()), 3 )
465+ self .assertRaises (PublishedState .DoesNotExist , PublishedState .objects .get , id = 2 )
466+ self .private_ps = PublishedState .objects .create (
467+ id = 2 ,
468+ doi = doi_generator (2 ),
469+ published = False ,
470+ session = self .private_session ,
471+ )
472+
473+ def test_delete_private_published_state_unauthorized (self ):
474+ request1 = self .auth_client2 .delete ("/v1/data/published/2/" )
475+ self .private_session .users .add (self .user2 )
476+ request2 = self .auth_client2 .delete ("/v1/data/published/2/" )
477+ self .private_session .users .remove (self .user2 )
478+ request3 = self .client .delete ("/v1/data/published/2/" )
479+ self .assertEqual (request1 .status_code , status .HTTP_403_FORBIDDEN )
480+ self .assertEqual (request2 .status_code , status .HTTP_403_FORBIDDEN )
481+ self .assertEqual (request3 .status_code , status .HTTP_401_UNAUTHORIZED )
482+
483+ def test_cant_delete_public_published_state (self ):
484+ request = self .auth_client1 .delete ("/v1/data/published/1/" )
485+ self .assertEqual (request .status_code , status .HTTP_403_FORBIDDEN )
486+
487+ def test_delete_unowned_published_state (self ):
488+ request = self .auth_client1 .delete ("/v1/data/published/3/" )
489+ self .assertEqual (request .status_code , status .HTTP_403_FORBIDDEN )
460490
461491 @classmethod
462492 def tearDownClass (cls ):
0 commit comments