Skip to content

Commit 21eae7d

Browse files
SilviaAmAmsvenvandescheur
authored andcommitted
✅ [#263] Test ordering of assignees in the destruction list endpoint
1 parent 02383a6 commit 21eae7d

File tree

2 files changed

+54
-28
lines changed

2 files changed

+54
-28
lines changed

backend/src/openarchiefbeheer/destruction/tests/test_endpoints.py

+52
Original file line numberDiff line numberDiff line change
@@ -779,6 +779,58 @@ def test_cannot_start_destruction_if_not_ready_to_delete(self):
779779
self.assertEqual(status.HTTP_403_FORBIDDEN, response.status_code)
780780
m_task.assert_not_called()
781781

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+
782834

783835
class DestructionListItemsViewSetTest(APITestCase):
784836
def test_not_authenticated(self):

backend/src/openarchiefbeheer/destruction/tests/test_utils.py

+2-28
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
from .factories import DestructionListAssigneeFactory, DestructionListFactory
88

99

10-
class ProcessNewReviewersTest(TestCase):
11-
def test_all_new_assignees_different(self):
10+
class UtilsTest(TestCase):
11+
def test_process_assignees(self):
1212
destruction_list = DestructionListFactory.create()
1313
DestructionListAssigneeFactory.create_batch(
1414
3, role=ListRole.reviewer, destruction_list=destruction_list
@@ -29,29 +29,3 @@ def test_all_new_assignees_different(self):
2929
self.assertEqual(2, new_assignees.count())
3030
self.assertEqual(users[0].pk, new_assignees[0].user.pk)
3131
self.assertEqual(users[1].pk, new_assignees[1].user.pk)
32-
33-
def test_not_all_new_assignees_are_new(self):
34-
destruction_list = DestructionListFactory.create()
35-
old_assignees = DestructionListAssigneeFactory.create_batch(
36-
2, role=ListRole.reviewer, destruction_list=destruction_list
37-
)
38-
39-
users = UserFactory.create_batch(2, role__can_review_destruction=True)
40-
new_assignee1 = {"user": users[0]}
41-
new_assignee2 = {"user": users[1]}
42-
new_assignee3 = {"user": old_assignees[0].user}
43-
44-
process_new_assignees(
45-
destruction_list,
46-
[new_assignee1, new_assignee2, new_assignee3],
47-
ListRole.reviewer,
48-
)
49-
50-
new_assignees = destruction_list.assignees.filter(
51-
role=ListRole.reviewer
52-
).order_by("user__pk")
53-
54-
self.assertEqual(3, new_assignees.count())
55-
self.assertEqual(old_assignees[0].user.pk, new_assignees[0].user.pk)
56-
self.assertEqual(users[0].pk, new_assignees[1].user.pk)
57-
self.assertEqual(users[1].pk, new_assignees[2].user.pk)

0 commit comments

Comments
 (0)