@@ -779,6 +779,58 @@ def test_cannot_start_destruction_if_not_ready_to_delete(self):
779
779
self .assertEqual (status .HTTP_403_FORBIDDEN , response .status_code )
780
780
m_task .assert_not_called ()
781
781
782
+ def test_reassign_swaps_reviewers (self ):
783
+ record_manager = UserFactory .create (role__can_start_destruction = True )
784
+ destruction_list = DestructionListFactory .create (
785
+ name = "A test list" ,
786
+ author = record_manager ,
787
+ )
788
+ assignees = DestructionListAssigneeFactory .create_batch (
789
+ 2 , destruction_list = destruction_list , role = ListRole .reviewer
790
+ )
791
+
792
+ self .client .force_authenticate (user = record_manager )
793
+ response = self .client .get (
794
+ reverse (
795
+ "api:destructionlist-detail" , kwargs = {"uuid" : destruction_list .uuid }
796
+ ),
797
+ )
798
+ self .assertEqual (response .status_code , status .HTTP_200_OK )
799
+
800
+ data = response .json ()
801
+
802
+ self .assertEqual (data ["assignees" ][0 ]["user" ]["pk" ], assignees [0 ].user .pk )
803
+ self .assertEqual (data ["assignees" ][1 ]["user" ]["pk" ], assignees [1 ].user .pk )
804
+
805
+ # Swap the assignees
806
+ self .client .post (
807
+ reverse (
808
+ "api:destructionlist-reassign" , kwargs = {"uuid" : destruction_list .uuid }
809
+ ),
810
+ data = {
811
+ "assignees" : [
812
+ {"user" : assignees [1 ].user .pk },
813
+ {"user" : assignees [0 ].user .pk },
814
+ ],
815
+ "comment" : "Lorem ipsum..." ,
816
+ "role" : ListRole .reviewer ,
817
+ },
818
+ format = "json" ,
819
+ )
820
+ self .assertEqual (response .status_code , status .HTTP_200_OK )
821
+
822
+ response = self .client .get (
823
+ reverse (
824
+ "api:destructionlist-detail" , kwargs = {"uuid" : destruction_list .uuid }
825
+ ),
826
+ )
827
+ self .assertEqual (response .status_code , status .HTTP_200_OK )
828
+
829
+ data = response .json ()
830
+
831
+ self .assertEqual (data ["assignees" ][0 ]["user" ]["pk" ], assignees [1 ].user .pk )
832
+ self .assertEqual (data ["assignees" ][1 ]["user" ]["pk" ], assignees [0 ].user .pk )
833
+
782
834
783
835
class DestructionListItemsViewSetTest (APITestCase ):
784
836
def test_not_authenticated (self ):
0 commit comments