Skip to content

Commit 618e199

Browse files
committed
✅ [#390] Update tests
1 parent 673b46f commit 618e199

26 files changed

+234
-151
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
[
2+
{
3+
"model": "auth.permission",
4+
"fields": {
5+
"name": "Can start destruction",
6+
"content_type": [
7+
"accounts",
8+
"user"
9+
],
10+
"codename": "can_start_destruction"
11+
}
12+
},
13+
{
14+
"model": "auth.permission",
15+
"fields": {
16+
"name": "Can review destruction",
17+
"content_type": [
18+
"accounts",
19+
"user"
20+
],
21+
"codename": "can_review_destruction"
22+
}
23+
},
24+
{
25+
"model": "auth.permission",
26+
"fields": {
27+
"name": "Can review final list",
28+
"content_type": [
29+
"accounts",
30+
"user"
31+
],
32+
"codename": "can_review_final_list"
33+
}
34+
}
35+
]

backend/src/openarchiefbeheer/accounts/tests/factories.py

+14
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from django.contrib.auth import get_user_model
2+
from django.contrib.auth.models import Permission
23

34
import factory
5+
from factory import post_generation
46
from factory.django import DjangoModelFactory
57

68
User = get_user_model()
@@ -21,3 +23,15 @@ class Params:
2123
is_staff=True,
2224
is_superuser=True,
2325
)
26+
27+
@post_generation
28+
def post(user, create, extracted, **kwargs):
29+
if not create:
30+
return
31+
32+
for item, value in kwargs.items():
33+
if not value:
34+
continue
35+
36+
permission = Permission.objects.filter(codename=item).first()
37+
user.user_permissions.add(permission)

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

+7-14
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from rest_framework.reverse import reverse
33
from rest_framework.test import APITestCase
44

5-
from openarchiefbeheer.accounts.tests.factories import RoleFactory, UserFactory
5+
from openarchiefbeheer.accounts.tests.factories import UserFactory
66

77

88
class WhoAmIViewTest(APITestCase):
@@ -14,8 +14,7 @@ def test_not_authenticated(self):
1414
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
1515

1616
def test_authenticated(self):
17-
role = RoleFactory.create()
18-
user = UserFactory.create(role=role)
17+
user = UserFactory.create(post__can_start_destruction=True)
1918

2019
self.client.force_authenticate(user=user)
2120
endpoint = reverse("api:whoami")
@@ -30,14 +29,8 @@ def test_authenticated(self):
3029
self.assertEqual(data["firstName"], user.first_name)
3130
self.assertEqual(data["lastName"], user.last_name)
3231
self.assertEqual(data["email"], user.email)
33-
self.assertEqual(data["role"]["name"], role.name)
34-
self.assertEqual(
35-
data["role"]["canStartDestruction"], role.can_start_destruction
36-
)
37-
self.assertEqual(
38-
data["role"]["canReviewDestruction"], role.can_review_destruction
39-
)
40-
self.assertEqual(data["role"]["canViewCaseDetails"], role.can_view_case_details)
32+
self.assertTrue(data["role"]["canStartDestruction"])
33+
self.assertFalse(data["role"]["canReviewDestruction"])
4134

4235
def test_post(self):
4336
user = UserFactory.create()
@@ -59,10 +52,10 @@ def test_not_authenticated_cant_access(self):
5952
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
6053

6154
def test_get_archivists(self):
62-
UserFactory.create_batch(2, role__can_review_final_list=True)
63-
UserFactory.create_batch(3, role__can_review_final_list=False)
55+
UserFactory.create_batch(2, post__can_review_final_list=True)
56+
UserFactory.create_batch(3, post__can_review_final_list=False)
6457

65-
record_manager = UserFactory.create(role__can_start_destruction=True)
58+
record_manager = UserFactory.create(post__can_start_destruction=True)
6659

6760
self.client.force_login(record_manager)
6861
response = self.client.get(reverse("api:archivists"))

backend/src/openarchiefbeheer/api/tests/test_role_endpoints.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ def test_user_not_logged_in(self):
1212
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
1313

1414
def test_retrieve_reviewers(self):
15-
admin = UserFactory.create(is_superuser=True, role=None)
16-
UserFactory.create_batch(2, role__can_review_destruction=True)
17-
UserFactory.create_batch(2, role__can_review_destruction=False)
15+
admin = UserFactory.create(is_superuser=True)
16+
UserFactory.create_batch(2, post__can_review_destruction=True)
17+
UserFactory.create_batch(2, post__can_review_destruction=False)
1818

1919
self.client.force_authenticate(user=admin)
2020
response = self.client.get(reverse("api:reviewers"))

backend/src/openarchiefbeheer/config/tests/test_views.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def test_authenticated_can_retrieve(self):
2525
self.assertIn("zaaktypesShortProcess", response.json())
2626

2727
def test_not_record_manager_update(self):
28-
user = UserFactory.create(role__can_start_destruction=False)
28+
user = UserFactory.create(post__can_start_destruction=False)
2929

3030
self.client.force_login(user)
3131
response = self.client.put(
@@ -36,7 +36,7 @@ def test_not_record_manager_update(self):
3636
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
3737

3838
def test_record_manager_update(self):
39-
user = UserFactory.create(role__can_start_destruction=True)
39+
user = UserFactory.create(post__can_start_destruction=True)
4040

4141
self.client.force_login(user)
4242
response = self.client.put(
@@ -51,7 +51,7 @@ def test_record_manager_update(self):
5151
self.assertEqual(config.zaaktypes_short_process, ["http://tralala.nl"])
5252

5353
def test_record_manager_partial_update(self):
54-
user = UserFactory.create(role__can_start_destruction=True)
54+
user = UserFactory.create(post__can_start_destruction=True)
5555

5656
self.client.force_login(user)
5757
response = self.client.patch(
@@ -68,7 +68,7 @@ def test_record_manager_partial_update(self):
6868
@tag("gh-227")
6969
@override_settings(SOLO_CACHE=None)
7070
def test_can_send_empty_list(self):
71-
user = UserFactory.create(role__can_start_destruction=True)
71+
user = UserFactory.create(post__can_start_destruction=True)
7272

7373
config = ArchiveConfig.get_solo()
7474
config.zaaktypes_short_process = ["http://tralala.nl"]

backend/src/openarchiefbeheer/destruction/tests/e2e/features/test_feature_list_process_review.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ async def test_zaaktype_filters_on_process_review_page(self):
8383
@sync_to_async
8484
def create_data():
8585
record_manager = UserFactory.create(
86-
password="ANic3Password", role__can_start_destruction=True
86+
password="ANic3Password", post__can_start_destruction=True
8787
)
8888
destruction_list = DestructionListFactory.create(
8989
assignee=record_manager,
@@ -175,7 +175,7 @@ def create_data():
175175
async def test_zaak_removed_outside_process(self):
176176
@sync_to_async
177177
def create_data():
178-
record_manager = UserFactory.create(username="Record Manager", password="ANic3Password", role__can_start_destruction=True)
178+
record_manager = UserFactory.create(username="Record Manager", password="ANic3Password", post__can_start_destruction=True)
179179

180180
zaken = ZaakFactory.create_batch(2)
181181
list = DestructionListFactory.create(

backend/src/openarchiefbeheer/destruction/tests/e2e/features/test_feature_list_review.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ async def test_scenario_reviewer_rejects_list(self):
9797
async def test_scenario_reviewer_reviews_second_time(self):
9898
@sync_to_async
9999
def create_data():
100-
record_manager = UserFactory.create(role__can_start_destruction=True)
101-
reviewer = UserFactory.create(username="Beoordelaar", password="ANic3Password", role__can_review_destruction=True)
100+
record_manager = UserFactory.create(post__can_start_destruction=True)
101+
reviewer = UserFactory.create(username="Beoordelaar", password="ANic3Password", post__can_review_destruction=True)
102102

103103
zaken = ZaakFactory.create_batch(2)
104104

@@ -195,7 +195,7 @@ async def test_zaaktype_filters(self):
195195
@sync_to_async
196196
def create_data():
197197
reviewer = UserFactory.create(
198-
password="ANic3Password", role__can_review_destruction=True
198+
password="ANic3Password", post__can_review_destruction=True
199199
)
200200
destruction_list = DestructionListFactory.create(
201201
assignee=reviewer,
@@ -275,8 +275,8 @@ def create_data():
275275
async def test_zaak_removed_outside_process(self):
276276
@sync_to_async
277277
def create_data():
278-
record_manager = UserFactory.create(role__can_start_destruction=True)
279-
reviewer = UserFactory.create(username="Beoordelaar", password="ANic3Password", role__can_review_destruction=True)
278+
record_manager = UserFactory.create(post__can_start_destruction=True)
279+
reviewer = UserFactory.create(username="Beoordelaar", password="ANic3Password", post__can_review_destruction=True)
280280

281281
zaken = ZaakFactory.create_batch(2)
282282
list = DestructionListFactory.create(

backend/src/openarchiefbeheer/destruction/tests/e2e/test_views.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ async def test_login_redirects_to_destruction_list(self):
1414
@sync_to_async
1515
def _create_record_manager():
1616
record_manager = UserFactory.create(
17-
role__can_start_destruction=True,
17+
post__can_start_destruction=True,
1818
password="ANic3Password",
1919
)
2020
return record_manager

backend/src/openarchiefbeheer/destruction/tests/endpoints/test_abort_destruction.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
class DestructionListAbortDestructionEndpointTest(APITestCase):
1717
def test_only_author_can_abort(self):
1818
record_manager = UserFactory.create(
19-
username="record_manager", role__can_start_destruction=True
19+
username="record_manager", post__can_start_destruction=True
2020
)
2121
destruction_list = DestructionListFactory.create(
2222
name="A test list",
@@ -39,7 +39,7 @@ def test_only_author_can_abort(self):
3939

4040
def test_only_ready_to_delete_with_planned_date_can_be_aborted(self):
4141
record_manager = UserFactory.create(
42-
username="record_manager", role__can_start_destruction=True
42+
username="record_manager", post__can_start_destruction=True
4343
)
4444
destruction_list = DestructionListFactory.create(
4545
name="A test list",
@@ -63,7 +63,7 @@ def test_only_ready_to_delete_with_planned_date_can_be_aborted(self):
6363

6464
def test_cannot_abort_without_comment(self):
6565
record_manager = UserFactory.create(
66-
username="record_manager", role__can_start_destruction=True
66+
username="record_manager", post__can_start_destruction=True
6767
)
6868
destruction_list = DestructionListFactory.create(
6969
name="A test list",
@@ -88,7 +88,7 @@ def test_cannot_abort_without_comment(self):
8888

8989
def test_abort_list_destruction(self):
9090
record_manager = UserFactory.create(
91-
username="record_manager", role__can_start_destruction=True
91+
username="record_manager", post__can_start_destruction=True
9292
)
9393
destruction_list = DestructionListFactory.create(
9494
name="A test list",

backend/src/openarchiefbeheer/destruction/tests/endpoints/test_list_destruction.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
class DestructionListStartDestructionEndpointTest(APITestCase):
1818
def test_plan_destruction(self):
1919
record_manager = UserFactory.create(
20-
username="record_manager", role__can_start_destruction=True
20+
username="record_manager", post__can_start_destruction=True
2121
)
2222
destruction_list = DestructionListFactory.create(
2323
name="A test list",
@@ -47,7 +47,7 @@ def test_retry_destruction_after_failure_queues_immediately(
4747
self,
4848
):
4949
record_manager = UserFactory.create(
50-
username="record_manager", role__can_start_destruction=True
50+
username="record_manager", post__can_start_destruction=True
5151
)
5252
destruction_list = DestructionListFactory.create(
5353
name="A test list",
@@ -83,7 +83,7 @@ def test_retry_destruction_after_failure_with_planned_date_in_future_raises_erro
8383
):
8484
"""This scenario should never happen unless someone manually changes the planned destruction date."""
8585
record_manager = UserFactory.create(
86-
username="record_manager", role__can_start_destruction=True
86+
username="record_manager", post__can_start_destruction=True
8787
)
8888
destruction_list = DestructionListFactory.create(
8989
name="A test list",
@@ -110,7 +110,7 @@ def test_retry_destruction_after_failure_with_planned_date_in_future_raises_erro
110110
)
111111

112112
def test_cannot_start_destruction_if_not_author(self):
113-
record_manager = UserFactory.create(role__can_start_destruction=True)
113+
record_manager = UserFactory.create(post__can_start_destruction=True)
114114
destruction_list = DestructionListFactory.create(
115115
name="A test list",
116116
contains_sensitive_info=True,
@@ -131,7 +131,7 @@ def test_cannot_start_destruction_if_not_author(self):
131131
m_task.assert_not_called()
132132

133133
def test_cannot_start_destruction_if_not_ready_to_delete(self):
134-
record_manager = UserFactory.create(role__can_start_destruction=True)
134+
record_manager = UserFactory.create(post__can_start_destruction=True)
135135
destruction_list = DestructionListFactory.create(
136136
name="A test list",
137137
contains_sensitive_info=True,
@@ -154,7 +154,7 @@ def test_cannot_start_destruction_if_not_ready_to_delete(self):
154154

155155
def test_cannot_start_destruction_if_archiefactiedatum_in_the_future(self):
156156
record_manager = UserFactory.create(
157-
username="record_manager", role__can_start_destruction=True
157+
username="record_manager", post__can_start_destruction=True
158158
)
159159
destruction_list = DestructionListFactory.create(
160160
name="A test list",
@@ -193,7 +193,7 @@ def test_cannot_start_destruction_if_archiefactiedatum_in_the_future(self):
193193

194194
def test_can_start_destruction_if_archiefactiedatum_in_the_future_but_removed(self):
195195
record_manager = UserFactory.create(
196-
username="record_manager", role__can_start_destruction=True
196+
username="record_manager", post__can_start_destruction=True
197197
)
198198
destruction_list = DestructionListFactory.create(
199199
name="A test list",

backend/src/openarchiefbeheer/destruction/tests/endpoints/test_reviewresponse.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def test_filter_on_review(self):
5454
self.assertEqual(len(data[0]["itemsResponses"]), 2)
5555

5656
def test_create_review_response(self):
57-
record_manager = UserFactory.create(role__can_start_destruction=True)
57+
record_manager = UserFactory.create(post__can_start_destruction=True)
5858
review = DestructionListReviewFactory.create(
5959
destruction_list__author=record_manager,
6060
destruction_list__status=ListStatus.changes_requested,
@@ -133,8 +133,8 @@ def test_create_review_response(self):
133133
self.assertEqual(item_response3.action_zaak["archiefactiedatum"], "2030-01-01")
134134

135135
def test_cannot_create_response_if_not_author(self):
136-
record_manager1 = UserFactory.create(role__can_start_destruction=True)
137-
record_manager2 = UserFactory.create(role__can_start_destruction=True)
136+
record_manager1 = UserFactory.create(post__can_start_destruction=True)
137+
record_manager2 = UserFactory.create(post__can_start_destruction=True)
138138

139139
review = DestructionListReviewFactory.create(
140140
destruction_list__author=record_manager1,
@@ -165,7 +165,7 @@ def test_cannot_create_response_if_not_author(self):
165165
)
166166

167167
def test_cannot_create_response_if_not_changes_requested(self):
168-
record_manager = UserFactory.create(role__can_start_destruction=True)
168+
record_manager = UserFactory.create(post__can_start_destruction=True)
169169

170170
review = DestructionListReviewFactory.create(
171171
destruction_list__author=record_manager,
@@ -198,14 +198,14 @@ def test_cannot_create_response_if_not_changes_requested(self):
198198
@freezegun.freeze_time("2023-09-15T21:36:00+02:00")
199199
def test_audit_log(self):
200200
# Reassign
201-
record_manager = UserFactory.create(role__can_start_destruction=True)
201+
record_manager = UserFactory.create(post__can_start_destruction=True)
202202
destruction_list = DestructionListFactory.create(
203203
name="Test audittrail",
204204
status=ListStatus.ready_to_review,
205205
author=record_manager,
206206
)
207207
DestructionListAssigneeFactory.create(destruction_list=destruction_list)
208-
other_reviewer = UserFactory.create(role__can_review_destruction=True)
208+
other_reviewer = UserFactory.create(post__can_review_destruction=True)
209209

210210
self.client.force_authenticate(user=record_manager)
211211
endpoint_reassign = reverse(

0 commit comments

Comments
 (0)