Skip to content

Commit

Permalink
✅ Finalize zac.contrib.objects.kownsl.tests
Browse files Browse the repository at this point in the history
  • Loading branch information
damm89 committed Feb 9, 2024
1 parent 2adfaaf commit 2097bd2
Show file tree
Hide file tree
Showing 8 changed files with 188 additions and 91 deletions.
4 changes: 2 additions & 2 deletions backend/src/zac/camunda/tests/test_user_task_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ def setUpTestData(cls):
)
cls.zaak = factory(Zaak, zaak)

cls.document.last_edited_date = None
cls.document.last_edited_date = None # avoid patching fetching audit trail
cls.document_es = create_informatieobject_document(cls.document)

cls.zaak_context = ZaakContext(
Expand Down Expand Up @@ -694,7 +694,7 @@ def setUpTestData(cls):
)
cls.zaak = factory(Zaak, zaak)

cls.document.last_edited_date = None
cls.document.last_edited_date = None # avoid patching fetching audit trail
cls.document_es = create_informatieobject_document(cls.document)

cls.patch_get_documenten_validator = patch(
Expand Down
184 changes: 126 additions & 58 deletions backend/src/zac/contrib/objects/kownsl/tests/test_camunda.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@
from rest_framework.exceptions import ValidationError
from rest_framework.test import APITestCase
from zgw_consumers.api_models.base import factory
from zgw_consumers.api_models.catalogi import ZaakType
from zgw_consumers.api_models.catalogi import (
InformatieObjectType,
ResultaatType,
ZaakType,
)
from zgw_consumers.api_models.constants import VertrouwelijkheidsAanduidingen
from zgw_consumers.api_models.documenten import Document
from zgw_consumers.constants import APITypes
from zgw_consumers.models import Service
Expand All @@ -23,6 +28,7 @@
from zac.camunda.user_tasks import UserTaskData, get_context as _get_context
from zac.contrib.objects.kownsl.data import KownslTypes, ReviewRequest, Reviews
from zac.core.tests.utils import ClearCachesMixin
from zac.elasticsearch.api import create_informatieobject_document
from zgw.models.zrc import Zaak

from ..camunda import (
Expand All @@ -33,6 +39,7 @@
)
from .utils import (
ADVICE,
CATALOGI_ROOT,
DOCUMENT_URL,
DOCUMENTS_ROOT,
REVIEW_REQUEST,
Expand Down Expand Up @@ -75,17 +82,39 @@ def _get_task(**overrides):
class GetConfigureReviewRequestContextSerializersTests(ClearCachesMixin, APITestCase):
@classmethod
def setUpTestData(cls):
cls.maxDiff = None
super().setUpTestData()
Service.objects.create(api_type=APITypes.drc, api_root=DOCUMENTS_ROOT)
Service.objects.create(api_type=APITypes.zrc, api_root=ZAKEN_ROOT)
Service.objects.create(api_type=APITypes.ztc, api_root=CATALOGI_ROOT)

cls.catalogus = generate_oas_component(
"ztc",
"schemas/Catalogus",
url=f"{CATALOGI_ROOT}/catalogussen/e13e72de-56ba-42b6-be36-5c280e9b30cd",
domein="DOME",
)
cls.informatieobjecttype = generate_oas_component(
"ztc",
"schemas/InformatieObjectType",
url=f"{CATALOGI_ROOT}informatieobjecttypen/d5d7285d-ce95-4f9e-a36f-181f1c642aa6",
omschrijving="bijlage",
catalogus=cls.catalogus["url"],
vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar,
)
document = generate_oas_component(
"drc",
"schemas/EnkelvoudigInformatieObject",
url=DOCUMENT_URL,
bestandsnaam="some-bestandsnaam.ext",
)
cls.document = factory(Document, document)
Service.objects.create(api_type=APITypes.zrc, api_root=ZAKEN_ROOT)
cls.document.informatieobjecttype = factory(
InformatieObjectType, cls.informatieobjecttype
)

cls.document.last_edited_date = None # avoid patching fetching audit trail
cls.document_es = create_informatieobject_document(cls.document)

zaaktype = generate_oas_component(
"ztc",
"schemas/ZaakType",
Expand Down Expand Up @@ -294,67 +323,76 @@ def test_advice_context_serializer_previously_assigned_users(self, m):
)

UserFactory.create(username="some-other-author")

rr = factory(ReviewRequest, REVIEW_REQUEST)
rr.documents = [self.document.url]

# Avoid patching fetch_reviews and everything
rr.reviews = []
rr.fetched_reviews = True

with patch(
"zac.contrib.objects.kownsl.camunda.get_review_request_from_task",
return_value=rr,
"zac.contrib.objects.kownsl.camunda.search_informatieobjects",
return_value=[self.document_es],
):
task_data = UserTaskData(task=task, context=_get_context(task))
serializer = AdviceApprovalContextSerializer(instance=task_data)
self.assertEqual(
{
"camunda_assigned_users": {
"user_assignees": [],
"group_assignees": [],
},
"documents_link": reverse(
"zaak-documents-es",
kwargs={
"bronorganisatie": self.zaak.bronorganisatie,
"identificatie": self.zaak.identificatie,
},
),
"id": REVIEW_REQUEST["id"],
"previously_assigned_users": [
{
"user_assignees": [
{
"first_name": "Some First",
"full_name": "Some First Some Last",
"last_name": "Some Last",
"username": "some-author",
}
],
with patch(
"zac.contrib.objects.kownsl.camunda.get_review_request_from_task",
return_value=rr,
):
task_data = UserTaskData(task=task, context=_get_context(task))
serializer = AdviceApprovalContextSerializer(instance=task_data)
self.assertEqual(
{
"camunda_assigned_users": {
"user_assignees": [],
"group_assignees": [],
"email_notification": False,
"deadline": "2022-04-14",
},
{
"user_assignees": [
{
"first_name": "Some Other First",
"full_name": "Some Other First Some Last",
"last_name": "Some Last",
"username": "some-other-author",
}
],
"group_assignees": [],
"email_notification": False,
"deadline": "2022-04-15",
"documents_link": reverse(
"zaak-documents-es",
kwargs={
"bronorganisatie": self.zaak.bronorganisatie,
"identificatie": self.zaak.identificatie,
},
),
"id": REVIEW_REQUEST["id"],
"previously_assigned_users": [
{
"user_assignees": [
{
"first_name": "Some First",
"full_name": "Some First Some Last",
"last_name": "Some Last",
"username": "some-author",
}
],
"group_assignees": [],
"email_notification": False,
"deadline": "2022-04-14",
},
{
"user_assignees": [
{
"first_name": "Some Other First",
"full_name": "Some Other First Some Last",
"last_name": "Some Last",
"username": "some-other-author",
}
],
"group_assignees": [],
"email_notification": False,
"deadline": "2022-04-15",
},
],
"review_type": KownslTypes.advice,
"previously_selected_documents": [self.document.url],
"title": f"{self.zaaktype.omschrijving} - {self.zaaktype.versiedatum}",
"zaak_informatie": {
"omschrijving": self.zaak.omschrijving,
"toelichting": self.zaak.toelichting,
},
],
"review_type": KownslTypes.advice,
"previously_selected_documents": [],
"title": f"{self.zaaktype.omschrijving} - {self.zaaktype.versiedatum}",
"zaak_informatie": {
"omschrijving": self.zaak.omschrijving,
"toelichting": self.zaak.toelichting,
},
},
serializer.data["context"],
)
serializer.data["context"],
)


class ConfigureReviewRequestSerializersTests(APITestCase):
Expand All @@ -365,10 +403,37 @@ def setUpTestData(cls):
cls.group = GroupFactory.create()
cls.users_2 = UserFactory.create_batch(3)
Service.objects.create(api_type=APITypes.drc, api_root=DOCUMENTS_ROOT)
Service.objects.create(api_type=APITypes.zrc, api_root=ZAKEN_ROOT)
Service.objects.create(api_type=APITypes.ztc, api_root=CATALOGI_ROOT)

cls.catalogus = generate_oas_component(
"ztc",
"schemas/Catalogus",
url=f"{CATALOGI_ROOT}/catalogussen/e13e72de-56ba-42b6-be36-5c280e9b30cd",
domein="DOME",
)
cls.informatieobjecttype = generate_oas_component(
"ztc",
"schemas/InformatieObjectType",
url=f"{CATALOGI_ROOT}informatieobjecttypen/d5d7285d-ce95-4f9e-a36f-181f1c642aa6",
omschrijving="bijlage",
catalogus=cls.catalogus["url"],
vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar,
)
document = generate_oas_component(
"drc", "schemas/EnkelvoudigInformatieObject", url=DOCUMENT_URL
"drc",
"schemas/EnkelvoudigInformatieObject",
url=DOCUMENT_URL,
bestandsnaam="some-bestandsnaam.ext",
)
cls.document = factory(Document, document)
cls.document.informatieobjecttype = factory(
InformatieObjectType, cls.informatieobjecttype
)

cls.document.last_edited_date = None # avoid patching fetching audit trail
cls.document_es = create_informatieobject_document(cls.document)

zaak = generate_oas_component(
"zrc",
"schemas/Zaak",
Expand All @@ -387,8 +452,8 @@ def setUpTestData(cls):
return_value=cls.zaak_context,
)
cls.patch_get_documenten = patch(
"zac.core.api.validators.get_documenten_es",
return_value=[cls.document],
"zac.core.api.validators.search_informatieobjects",
return_value=[cls.document_es],
)
rr = deepcopy(REVIEW_REQUEST)
rr["documents"] = [cls.document.url]
Expand Down Expand Up @@ -760,8 +825,11 @@ def test_reconfigure_review_request_serializer_user_already_reviewed(self, m):
task = _get_task(**{"formKey": "zac:configureAdviceRequest"})

rr = factory(ReviewRequest, REVIEW_REQUEST)

# Avoid patching fetch_reviews and everything
rr.reviews = factory(Reviews, REVIEWS_ADVICE).reviews
rr.fetched_reviews = True

with patch(
"zac.contrib.objects.kownsl.camunda.get_review_request",
return_value=rr,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ def test_update_assigned_users_review_request(self, m, *mocks):
zaak_context.zaak = self.zaak

rr = factory_review_request(REVIEW_REQUEST)
# Avoid patching fetch_reviews and everything
rr.reviews = factory_reviews(REVIEWS_ADVICE).reviews
rr.fetched_reviews = True
with patch(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,10 @@ def test_success_get_review_request(self, m):
mock_resource_get(m, self.zaak)

rr = factory_review_request(REVIEW_REQUEST)
# Avoid patching fetch_reviews and everything
rr.reviews = []
rr.fetched_reviews = True

user = UserFactory(username=ADVICE["author"]["username"])
self.client.force_authenticate(user=user)
url = reverse(
Expand All @@ -113,8 +115,10 @@ def test_fail_get_review_already_exists(self, m):
mock_resource_get(m, self.zaak)

rr = factory_review_request(REVIEW_REQUEST)
# Avoid patching fetch_reviews and everything
rr.reviews = factory_reviews(REVIEWS_ADVICE).reviews
rr.fetched_reviews = True

user = UserFactory(username=ADVICE["author"]["username"])
self.client.force_authenticate(user=user)
url = reverse(
Expand Down Expand Up @@ -176,8 +180,10 @@ def test_success_get_review_already_exists_for_group_but_not_user(self, m):
reviews_advice = deepcopy(REVIEWS_ADVICE)
reviews_advice["reviews"] = [advice]

# Avoid patching fetch_reviews and everything
rr.reviews = factory_reviews(reviews_advice).reviews
rr.fetched_reviews = True

user = UserFactory(username=ADVICE["author"]["username"])
user.groups.add(self.group)

Expand Down
Loading

0 comments on commit 2097bd2

Please sign in to comment.