示例#1
0
    def test_get_large_documents_from_api(self, m):
        mock_service_oas_get(m, DRC_URL, "drc")

        # Mock call to retrieve the documents from the API
        m.get(DOCUMENT_1, json=RESPONSE_1)
        m.get(DOCUMENT_2, json=RESPONSE_2)

        # Mock calls to retrieve the content of the documents
        m.get(
            CONTENT_URL_1,
            content=CONTENT_1,
        )
        m.get(
            CONTENT_URL_2,
            content=CONTENT_2,
        )

        task = CreateValidSignPackageTask(self.fetched_task)
        documents = task._get_documents_from_api()

        for index, doc in enumerate(documents):
            self.assertTrue(isinstance(documents[index][1], TemporaryUploadedFile))
            documents[index][1].seek(0)
            uploaded_content = documents[index][1].read()

            self.assertEqual(
                uploaded_content, f"Test content {index+1}".encode("utf-8")
            )
    def test_extra_variables(self, m):
        self.fetched_task.variables["zaakDetails"] = serialize_variable({
            "omschrijving":
            "foo",
        })
        self.fetched_task.save(0)

        mock_service_oas_get(m, ZTC_URL, "ztc")
        mock_service_oas_get(m, ZRC_URL, "zrc")

        mock_statustypen_get(m)
        response = RESPONSES[ZAAK].copy()
        response["omschrijving"] = "foo"
        m.post(f"{ZRC_URL}zaken", status_code=201, json=response)
        mock_status_post(m)
        task = CreateZaakTask(self.fetched_task)

        task.perform()

        request_zaak = next(
            filter(
                lambda x: x.url == f"{ZRC_URL}zaken" and x.method == "POST",
                m.request_history,
            ))

        self.assertEqual(request_zaak.json()["omschrijving"], "foo")
    def test_relateer_zaak_bijdrage_aard_omgekeerde_richting_invalid(self, m):
        mock_service_oas_get(m, ZRC_URL, "zrc")
        m.get(
            ZAAK,
            json={
                "url": ZAAK,
                "relevanteAndereZaken": [],
            },
        )
        m.patch(
            ZAAK,
            status_code=200,
            json={
                "url":
                ZAAK,
                "relevanteAndereZaken": [
                    {
                        "url": BIJDRAGE_ZAAK,
                        "aardRelatie": "bijdrage",
                    },
                ],
            },
        )

        self.fetched_task.variables[
            "bijdrageAardOmgekeerdeRichting"] = serialize_variable("niks")
        self.fetched_task.save()
        task = RelateerZaak(self.fetched_task)

        with self.assertRaises(ValueError) as e:
            task.perform()
        self.assertEqual(e.exception.__str__(),
                         "Unknown 'bijdrageAardOmgekeerdeRichting': 'niks'")
示例#4
0
    def test_successful_lookup(self, m):
        mock_service_oas_get(m, ZRC_URL, "zrc")
        m.get(
            f"{ZRC_URL}zaken?identificatie=ZAAK-001122&bronorganisatie=123456782",
            json={
                "count":
                1,
                "previous":
                None,
                "next":
                None,
                "results": [{
                    "url":
                    f"{ZRC_URL}zaken/b291502c-2383-4d40-9079-e8aec66eb251",
                    "identificatie": "ZAAK-001122",
                    "bronorganisatie": "123456782",
                    # rest is not relevant
                }],
            },
        )
        task = LookupZaak(self.fetched_task)

        result = task.perform()

        self.assertEqual(result, {
            "zaakUrl":
            f"{ZRC_URL}zaken/b291502c-2383-4d40-9079-e8aec66eb251"
        })
    def test_eigenschap_waarde_is_empty(self, m):
        mock_service_oas_get(m, ZRC_URL, "zrc")
        mock_service_oas_get(m, ZTC_URL, "ztc")

        # https://catalogi-api.vng.cloud/api/v1/schema/#operation/eigenschap_list
        fetched_task = ExternalTask.objects.create(
            topic_name="some-topic",
            worker_id="test-worker-id",
            task_id="test-task-id",
            variables={
                "services":
                serialize_variable({
                    "ZRC": {
                        "jwt": "Bearer 12345"
                    },
                    "ZTC": {
                        "jwt": "Bearer 12345"
                    },
                }),
                "zaakUrl":
                serialize_variable(ZAAK),
                "eigenschap":
                serialize_variable({
                    "naam": "referentie",
                    "waarde": "",
                }),
            },
        )

        task = CreateEigenschap(fetched_task)
        task.perform()

        self.assertTrue(all(req.method == "GET" for req in m.request_history))
    def test_create_zaak_zaaktype_specified(self, m):
        mock_service_oas_get(m, ZTC_URL, "ztc")
        mock_service_oas_get(m, ZRC_URL, "zrc")

        mock_statustypen_get(m)
        m.post(f"{ZRC_URL}zaken", status_code=201, json=RESPONSES[ZAAK])
        mock_status_post(m)

        task = CreateZaakTask(self.fetched_task)

        result = task.perform()
        self.assertEqual(
            result,
            {
                "zaakUrl": ZAAK,
                "zaakIdentificatie": "ZAAK-2020-0000000013",
            },
        )

        request_zaak = next(
            filter(
                lambda x: x.url == f"{ZRC_URL}zaken" and x.method == "POST",
                m.request_history,
            ))
        self.assertEqual(request_zaak.headers["X-NLX-Request-Process-Id"],
                         "12345")
        self.assertEqual(request_zaak.headers["Authorization"], "Bearer 12345")
    def test_create_zaak_cant_find_catalogus(self, m):
        mock_service_oas_get(m, ZTC_URL, "ztc")
        self.fetched_task.variables["zaaktype"] = serialize_variable("")
        self.fetched_task.variables["catalogusDomein"] = serialize_variable(
            "ABR")
        self.fetched_task.variables[
            "zaaktypeIdentificatie"] = serialize_variable("abcd")
        self.fetched_task.save()
        task = CreateZaakTask(self.fetched_task)

        m.get(
            f"{ZTC_URL}catalogussen?domein=ABR&rsin=002220647",
            status_code=200,
            json={
                "count": 0,
                "next": None,
                "previous": None,
                "results": []
            },
        )
        with self.assertRaises(ValueError) as e:
            task.perform()
        self.assertEqual(
            e.exception.__str__(),
            "No catalogus found with domein ABR and RSIN 002220647.",
        )
示例#8
0
    def test_execute_fail(self, m, mock_fail_task):
        task = ExternalTaskFactory.create(
            topic_name="zaak-initialize",
            variables={
                "zaaktype":
                serialize_variable(ZAAKTYPE),
                "organisatieRSIN":
                serialize_variable("123456788"),
                "services":
                serialize_variable({
                    "ZRC": {
                        "jwt": "Bearer 12345"
                    },
                    "ZTC": {
                        "jwt": "Bearer 789"
                    },
                }),
            },
        )
        # mock openzaak services
        mock_service_oas_get(m, ZTC_URL, "ztc")
        mock_service_oas_get(m, ZRC_URL, "zrc")
        m.post(f"{ZRC_URL}zaken", exc=ConnectionError("some connection error"))

        stdout = StringIO()
        call_command("execute_task", task_id=task.id, stdout=stdout)

        task.refresh_from_db()
        self.assertEqual(task.status, Statuses.failed)
        self.assertTrue(
            task.execution_error.strip().endswith("some connection error"))

        mock_fail_task.assert_called_once_with(task)
    def test_get_approval_toelichtingen(self, m):
        mock_service_oas_get(m, KOWNSL_API_ROOT, "kownsl")
        approvals = [
            {
                "toelichting": "Beste voorstel ooit.",
            },
            {
                "toelichting": "Echt niet mee eens.",
            },
            {
                "toelichting": "",
            },
        ]
        m.get(f"{KOWNSL_API_ROOT}api/v1/review-requests/1/approvals",
              json=approvals)

        task = ExternalTask.objects.create(**self.task_dict, )

        result = get_approval_toelichtingen(task)
        self.assertEqual(len(m.request_history), 2)  # one for client schema
        self.assertEqual(
            result,
            {
                "toelichtingen":
                "Beste voorstel ooit.\n\nEcht niet mee eens.\n\nGeen"
            },
        )
示例#10
0
    def test_get_review_request_reminder_date(self, m):
        mock_service_oas_get(m, KOWNSL_API_ROOT, "kownsl")
        rr_response = {
            "id": "1",
            "forZaak": "https://zaken.nl/api/v1/zaak/123",
            "reviewType": "advice",
            "userDeadlines": {
                "user:zeus": "2020-04-20",
                "user:poseidon": "2020-04-20",
                "user:hades": "2020-04-20",
                "user:hera": "2021-04-20",
                "user:demeter": "2021-04-20",
            },
        }
        m.get(
            f"{KOWNSL_API_ROOT}api/v1/review-requests/1",
            json=rr_response,
        )

        task_dict = copy.deepcopy(self.task_dict)
        task_dict["variables"]["kownslUsers"] = serialize_variable(
            ["user:zeus", "user:poseidon", "user:hades"])

        task = ExternalTask.objects.create(**task_dict, )

        reminderDate = get_review_request_reminder_date(task)
        self.assertEqual(reminderDate["reminderDate"], "2020-04-19")
    def test_create_status(self, m):
        mock_service_oas_get(m, ZRC_URL, "zrc")
        m.post(
            f"{ZRC_URL}statussen",
            status_code=201,
            json={
                "url": STATUS,
                "uuid": "b7218c76-7478-41e9-a088-54d2f914a713",
                "zaak": ZAAK,
                "statustype": STATUSTYPE,
                "datumStatusGezet": "2020-01-16T00:00:00+00:00",
                "statustoelichting": "some description",
            },
        )

        task = CreateStatusTask(self.fetched_task)

        result = task.perform()

        self.assertEqual(result, {"statusUrl": STATUS})
        self.assertEqual(
            m.last_request.json(),
            {
                "zaak": ZAAK,
                "statustype": STATUSTYPE,
                "datumStatusGezet": "2020-01-16T00:00:00+00:00",
                "statustoelichting": "some description",
            },
        )
示例#12
0
    def test_create_zaakobject(self, m):
        zaakobject_url = f"{ZRC_URL}zaakobjecten/1234"
        mock_service_oas_get(m, ZRC_URL, "zrc")
        m.post(
            f"{ZRC_URL}zaakobjecten",
            status_code=201,
            json={
                "url": zaakobject_url,
                "zaak": ZAAK,
                "object": OBJECT,
                "objectType": "adres",
                "objectTypeOverige": "",
                "relatieomschrijving": "",
            },
        )

        task = CreateZaakObject(self.fetched_task)

        result = task.perform()

        self.assertEqual(result, {"zaakObjectUrl": zaakobject_url})
        self.assertEqual(
            m.last_request.json(),
            {
                "zaak": ZAAK,
                "object": OBJECT,
                "objectType": "adres",
                "objectTypeOverige": "",
                "relatieomschrijving": "",
            },
        )
示例#13
0
    def test_create_resultaat(self, m):
        mock_service_oas_get(m, ZRC_URL, "zrc")
        m.post(
            f"{ZRC_URL}zaakobjecten",
            status_code=201,
            json={
                "url": f"{ZRC_URL}zaakobjecten/1234",
                "zaak": ZAAK,
                "object":
                "https://bag.basisregistraties.nl/api/v1/panden/1234",
                "objectType": "pand",
                "relatieomschrijving": "",
            },
        )

        task = RelatePand(self.fetched_task)

        result = task.perform()

        self.assertEqual(result, {})
        self.assertEqual(
            m.last_request.json(),
            {
                "zaak": ZAAK,
                "object":
                "https://bag.basisregistraties.nl/api/v1/panden/1234",
                "objectType": "pand",
                "relatieomschrijving": "",
            },
        )
示例#14
0
    def test_get_documents_from_api(self, m):
        mock_service_oas_get(m, DRC_URL, "drc")

        # Mock call to retrieve the documents from the API
        m.get(DOCUMENT_1, json=RESPONSE_1)
        m.get(DOCUMENT_2, json=RESPONSE_2)
        # Mock calls to retrieve the content of the documents
        m.get(
            CONTENT_URL_1,
            content=CONTENT_1,
        )
        m.get(
            CONTENT_URL_2,
            content=CONTENT_2,
        )

        task = CreateValidSignPackageTask(self.fetched_task)
        documents = task._get_documents_from_api()

        self.assertEqual(len(documents), 2)
        self.assertEqual(documents[0][0], RESPONSE_1["titel"])
        self.assertEqual(documents[0][1].read(), CONTENT_1)
        self.assertEqual(documents[1][0], RESPONSE_2["titel"])
        self.assertEqual(documents[1][1].read(), CONTENT_2)

        self.assertEqual(m.request_history[-1].headers["Authorization"], "Bearer 12345")
示例#15
0
 def test_get_client_old_auth(self, m):
     mock_service_oas_get(m, KOWNSL_API_ROOT, "kownsl")
     task = ExternalTask.objects.create(**self.task_dict, )
     client = get_client(task)
     self.assertIsInstance(client.schema, dict)
     self.assertIsNone(client.auth)
     self.assertEqual(client.auth_header,
                      {"Authorization": "Token foobarbaz"})
     self.assertEqual(len(m.request_history), 1)
     self.assertEqual(m.last_request.url, f"{self.service.oas}?v=3")
    def test_create_rol(self, m):
        mock_service_oas_get(m, ZRC_URL, "zrc")
        mock_service_oas_get(m, ZTC_URL, "ztc")
        m.get(ZAAK, json={"url": ZAAK, "zaaktype": ZAAKTYPE})
        m.get(
            f"{ZTC_URL}roltypen?zaaktype={ZAAKTYPE}",
            json={
                "count":
                1,
                "next":
                None,
                "previous":
                None,
                "results": [
                    {
                        "url": ROLTYPE,
                        "omschrijving": "roltype omschrijving",
                        "zaaktype": ZAAKTYPE,
                        "omschrijvingGeneriek": "initiator",
                    },
                ],
            },
        )
        m.post(
            f"{ZRC_URL}rollen",
            status_code=201,
            json={
                "url": ROL,
                "zaak": ZAAK,
                "betrokkene": "http://some.api.nl/betrokkenen/12345",
                "betrokkeneType": "natuurlijk_persoon",
                "roltype": ROLTYPE,
                "roltoelichting": "A test roltoelichting",
                "indicatieMachtiging": "",
                "betrokkeneIdentificatie": {},
            },
        )

        task = CreateRolTask(self.fetched_task)

        result = task.perform()

        self.assertEqual(result, {"rolUrl": ROL})
        self.assertEqual(
            m.last_request.json(),
            {
                "zaak": ZAAK,
                "betrokkene": "http://some.api.nl/betrokkenen/12345",
                "betrokkeneType": "natuurlijk_persoon",
                "roltype": ROLTYPE,
                "roltoelichting": "A test roltoelichting",
                "indicatieMachtiging": "",
                "betrokkeneIdentificatie": {},
            },
        )
    def test_create_zaak_with_rol(self, m):
        mock_service_oas_get(m, ZTC_URL, "ztc")
        mock_service_oas_get(m, ZRC_URL, "zrc")

        mock_statustypen_get(m)
        m.post(f"{ZRC_URL}zaken", status_code=201, json=RESPONSES[ZAAK])
        mock_status_post(m)

        mock_roltype_get(m)
        mock_rol_post(m)

        task_with_initiator = ExternalTask.objects.create(
            topic_name="some-topic",
            worker_id="test-worker-id",
            task_id="test-task-id",
            variables={
                "zaaktype":
                serialize_variable(ZAAKTYPE),
                "organisatieRSIN":
                serialize_variable("002220647"),
                "NLXProcessId":
                serialize_variable("12345"),
                "services":
                serialize_variable({
                    "ZRC": {
                        "jwt": "Bearer 12345"
                    },
                    "ZTC": {
                        "jwt": "Bearer 789"
                    },
                }),
                "initiator":
                serialize_variable({
                    "betrokkeneType": "natuurlijk_persoon",
                    "roltoelichting": "A test roltoelichting",
                }),
            },
        )

        task = CreateZaakTask(task_with_initiator)
        result = task.perform()

        self.assertEqual(
            result,
            {
                "zaakUrl": ZAAK,
                "zaakIdentificatie": "ZAAK-2020-0000000013",
            },
        )
        # check that the /api/v1/rollen endpoint was called correctly
        self.assertEqual(m.last_request.url,
                         "https://some.zrc.nl/api/v1/rollen")
        self.assertIsInstance(m.last_request.json(), dict)
示例#18
0
    def test_add_large_documents_and_signers_to_package(self, m):
        mock_validsign_oas_get(m)
        mock_service_oas_get(m, DRC_URL, "drc")
        mock_service_oas_get(m, OTHER_DRC_URL, "drc")
        test_package = {"id": "BW5fsOKyhj48A-fRwjPyYmZ8Mno="}

        # Two test documents are added to the package
        m.get(DOCUMENT_1, json=RESPONSE_1)
        m.get(
            CONTENT_URL_1,
            content=CONTENT_1,
        )
        m.get(DOCUMENT_3, json=RESPONSE_3)
        m.get(
            CONTENT_URL_3,
            content=CONTENT_3,
        )

        # The task will retrieve the roles from ValidSign, so mock the call
        mock_roles_get(m, test_package)

        test_document_response = {
            "id": "75204439c02fffeddaeb224a1ded0ea07016456c9069eadd",
            "name": "Test Document",
        }

        m.post(
            f"{VALIDSIGN_URL}api/packages/{test_package['id']}/documents",
            json=test_document_response,
        )

        task = CreateValidSignPackageTask(self.fetched_task)
        document_list = task.add_documents_and_approvals_to_package(test_package)

        # Since there are two documents in the package, the document list should contain 2 docs
        self.assertEqual(
            document_list, [test_document_response, test_document_response]
        )

        # Check that the request headers and body for POSTing the documents were formatted correctly
        for mocked_request in m.request_history[-2:]:
            self.assertEqual(mocked_request._request.headers["Accept"], "*/*")
            self.assertIn(
                "multipart/form-data; boundary=",
                mocked_request._request.headers["Content-Type"],
            )
            body = mocked_request._request.body.decode()
            self.assertIn('Content-Disposition: form-data; name="payload"', body)
            self.assertIn(
                'Content-Disposition: form-data; name="file"; filename=', body
            )
            self.assertTrue("Test content ", body)
    def test_unlock_document(self, m):
        mock_service_oas_get(m, DRC_URL, "drc")
        # Mock call to retrieve, lock and unlock the document from the API
        m.post(UNLOCK_DOCUMENT_URL)  # Unlocking has no response data
        task = UnlockDocument(self.fetched_task)

        result = task.perform()

        self.assertEqual(result, {})
        self.assertEqual(m.last_request.method, "POST")
        self.assertEqual(m.last_request.url, UNLOCK_DOCUMENT_URL)
        self.assertEqual(m.last_request.headers["Authorization"],
                         "Bearer 12345")
def test_mock_schema_get(settings, requests_mock):
    settings.ZGW_CONSUMERS_TEST_SCHEMA_DIRS = [
        os.path.join(TESTS_DIR, "schemas")
    ]
    mock_service_oas_get(requests_mock, "https://example.com/api/v1/", "dummy")

    response = requests.get(
        "https://example.com/api/v1/schema/openapi.yaml?v=3")

    assert response.content == b"openapi: 3.0.0\nname: dummy\n"
    assert requests_mock.call_count == 1
    assert (requests_mock.last_request.url ==
            "https://example.com/api/v1/schema/openapi.yaml?v=3")
示例#21
0
    def test_create_zaakobject_no_zaak(self, m):
        mock_service_oas_get(m, ZRC_URL, "zrc")

        fetched_task = self.fetched_task
        fetched_task.variables = {
            **fetched_task.variables,
            **{"zaakUrl": serialize_variable("")},
        }
        fetched_task.save()

        task = CreateZaakObject(fetched_task)
        result = task.perform()
        self.assertEqual(result, {})
        self.assertTrue(all(req.method == "GET" for req in m.request_history))
示例#22
0
    def test_relate_eigenschap(self, m):
        mock_service_oas_get(m, ZRC_URL, "zrc")
        mock_service_oas_get(m, ZTC_URL, "ztc")

        m.get(ZAAK, json={"zaaktype": ZAAKTYPE})
        # https://catalogi-api.vng.cloud/api/v1/schema/#operation/eigenschap_list
        m.get(
            f"{ZTC_URL}eigenschappen?zaaktype={ZAAKTYPE}",
            json={
                "count": 2,
                "next": f"{ZTC_URL}eigenschappen?zaaktype={ZAAKTYPE}&page=2",
                "previous": None,
                "results": [_get_datum_eigenschap("start")],
            },
        )
        m.get(
            f"{ZTC_URL}eigenschappen?zaaktype={ZAAKTYPE}&page=2",
            json={
                "count": 2,
                "next": None,
                "previous":
                f"{ZTC_URL}eigenschappen?zaaktype={ZAAKTYPE}&page=1",
                "results": [_get_datum_eigenschap("einde")],
            },
        )
        m.post(
            f"{ZAAK}/zaakeigenschappen",
            status_code=201,
            json={
                "url": f"{ZAAK}/eigenschappen/1234",
                "uuid": "1234",
                "zaak": ZAAK,
                "eigenschap": f"{ZTC_URL}eigenschappen/start",
                "naam": "start",
                "waarde": "2020-05-01",
            },
        )

        task = CreateEigenschap(self.fetched_task)
        task.perform()

        self.assertEqual(
            m.last_request.json(),
            {
                "zaak": ZAAK,
                "eigenschap": f"{ZTC_URL}eigenschappen/start",
                "waarde": "2020-05-01",
            },
        )
示例#23
0
    def test_get_email_details(self, m):
        mock_service_oas_get(m, KOWNSL_API_ROOT, "kownsl")
        rr_response = {
            "id": "1",
            "forZaak": "https://zaken.nl/api/v1/zaak/123",
            "reviewType": "advice",
            "requester": {
                "username": "******",
            },
        }
        m.get(
            f"{KOWNSL_API_ROOT}api/v1/review-requests/1",
            json=rr_response,
        )

        task_dict = copy.deepcopy(self.task_dict)
        task_dict["variables"].update({
            "kownslFrontendUrl":
            serialize_variable("a-url.test"),
            "deadline":
            serialize_variable("2020-04-01"),
        })

        task = ExternalTask.objects.create(**task_dict, )

        email_details = get_email_details(task)
        self.assertTrue("email" in email_details)
        self.assertEqual(
            email_details["email"],
            {
                "subject": "Uw advies wordt gevraagd",
                "content": "",
            },
        )

        self.assertEqual(
            email_details["context"],
            {
                "deadline": "2020-04-01",
                "kownslFrontendUrl": "a-url.test",
            },
        )

        self.assertTrue("template" in email_details)
        self.assertEqual(email_details["template"], "advies")

        self.assertTrue("senderUsername" in email_details)
        self.assertEqual(email_details["senderUsername"], ["user:Pietje"])
    def test_lock_document(self, m):
        mock_service_oas_get(m, DRC_URL, "drc")
        # Mock call to retrieve and lock the document from the API
        m.post(LOCK_DOCUMENT_URL, json=LOCK_DOCUMENT_RESPONSE)
        task = LockDocument(self.fetched_task)

        response = task.perform()

        self.assertIn("lockId", response)
        self.assertEqual(response["lockId"],
                         "bacbaeaf-600d-4b79-9414-3e1a668addd3")

        self.assertEqual(m.last_request.method, "POST")
        self.assertEqual(m.last_request.url, LOCK_DOCUMENT_URL)
        self.assertEqual(m.last_request.headers["Authorization"],
                         "Bearer 12345")
示例#25
0
    def test_get_review_request(self, m):
        mock_service_oas_get(m, KOWNSL_API_ROOT, "kownsl")
        task = ExternalTask.objects.create(**self.task_dict, )

        response = {
            "id": "1",
            "forZaak": "https://zaken.nl/api/v1/zaak/123",
            "reviewType": "advice",
        }
        m.get(
            f"{KOWNSL_API_ROOT}api/v1/review-requests/1",
            json=response,
        )

        review_requests = get_review_request(task)
        self.assertEqual(review_requests["id"], "1")
示例#26
0
    def test_zaak_not_found(self, m):
        mock_service_oas_get(m, ZRC_URL, "zrc")
        m.get(
            f"{ZRC_URL}zaken?identificatie=ZAAK-001122&bronorganisatie=123456782",
            json={
                "count": 0,
                "previous": None,
                "next": None,
                "results": [],
            },
        )
        task = LookupZaak(self.fetched_task)

        result = task.perform()

        self.assertEqual(result, {"zaakUrl": None})
    def test_create_zaak_cant_find_valid_zaaktype(self, m):
        mock_service_oas_get(m, ZTC_URL, "ztc")
        self.fetched_task.variables["zaaktype"] = serialize_variable("")
        self.fetched_task.variables["catalogusDomein"] = serialize_variable(
            "ABR")
        self.fetched_task.variables[
            "zaaktypeIdentificatie"] = serialize_variable("abcd")
        self.fetched_task.save()
        task = CreateZaakTask(self.fetched_task)

        catalogus = generate_oas_component(
            "ztc",
            "schemas/Catalogus",
            url=CATALOGUS,
        )
        m.get(
            f"{ZTC_URL}catalogussen?domein=ABR&rsin=002220647",
            status_code=200,
            json={
                "count": 1,
                "next": None,
                "previous": None,
                "results": [catalogus]
            },
        )
        zaaktype_1 = generate_oas_component("ztc",
                                            "schemas/ZaakType",
                                            beginGeldigheid="2021-08-05")
        zaaktype_2 = generate_oas_component("ztc",
                                            "schemas/ZaakType",
                                            beginGeldigheid="2021-08-03")
        m.get(
            f"{ZTC_URL}zaaktypen?catalogus=https%3A%2F%2Fsome.ztc.nl%2Fapi%2Fv1%2F%2Fcatalogussen%2F7022a89e-0dd1-4074-9c3a-1a990e6c18ab&identificatie=abcd",
            status_code=200,
            json={
                "count": 2,
                "next": None,
                "previous": None,
                "results": [zaaktype_1, zaaktype_2],
            },
        )
        with self.assertRaises(ValueError) as e:
            task.perform()
        self.assertEqual(
            e.exception.__str__(),
            "No zaaktype was found with catalogus https://some.ztc.nl/api/v1//catalogussen/7022a89e-0dd1-4074-9c3a-1a990e6c18ab, identificatie abcd with begin_geldigheid <= 2021-08-02 <= einde_geldigheid.",
        )
    def test_relateer_zaak_empty_bijdrage_aard_omgekeerde_richting(self, m):
        mock_service_oas_get(m, ZRC_URL, "zrc")
        m.get(
            ZAAK,
            json={
                "url": ZAAK,
                "relevanteAndereZaken": [],
            },
        )
        m.patch(
            ZAAK,
            status_code=200,
            json={
                "url":
                ZAAK,
                "relevanteAndereZaken": [
                    {
                        "url": BIJDRAGE_ZAAK,
                        "aardRelatie": "bijdrage",
                    },
                ],
            },
        )

        self.fetched_task.variables[
            "bijdrageAardOmgekeerdeRichting"] = serialize_variable("")
        self.fetched_task.save()
        task = RelateerZaak(self.fetched_task)

        result = task.perform()

        self.assertEqual(result, {})
        self.assertEqual(
            m.last_request.json(),
            {
                "relevanteAndereZaken": [
                    {
                        "url": BIJDRAGE_ZAAK,
                        "aardRelatie": "bijdrage",
                    },
                ],
            },
        )
示例#29
0
    def test_eigenschap_does_not_exist(self, m):
        mock_service_oas_get(m, ZRC_URL, "zrc")
        mock_service_oas_get(m, ZTC_URL, "ztc")

        m.get(ZAAK, json={"zaaktype": ZAAKTYPE})
        # https://catalogi-api.vng.cloud/api/v1/schema/#operation/eigenschap_list
        m.get(
            f"{ZTC_URL}eigenschappen?zaaktype={ZAAKTYPE}",
            json={
                "count": 0,
                "next": None,
                "previous": None,
                "results": [],
            },
        )

        task = CreateEigenschap(self.fetched_task)
        task.perform()

        self.assertTrue(all(req.method == "GET" for req in m.request_history))
示例#30
0
    def test_get_documents_from_api_credentials_store(self, m):
        mock_service_oas_get(m, DRC_URL, "drc")
        task = ExternalTask.objects.create(
            topic_name="CreateValidSignPackage",
            worker_id="test-worker-id",
            task_id="test-task-id",
            variables={
                "documents": serialize_variable([DOCUMENT_1, DOCUMENT_2]),
                "signers": serialize_variable([SIGNER_1, SIGNER_2]),
                "packageName": serialize_variable("Test package name"),
                "bptlAppId": serialize_variable("some-app"),
            },
        )
        AppServiceCredentialsFactory.create(
            app__app_id="some-app",
            service=self.drc,
            client_id="foo",
            secret="bar",
        )

        # Mock call to retrieve the documents from the API
        m.get(DOCUMENT_1, json=RESPONSE_1)
        m.get(DOCUMENT_2, json=RESPONSE_2)
        # Mock calls to retrieve the content of the documents
        m.get(
            CONTENT_URL_1,
            content=CONTENT_1,
        )
        m.get(
            CONTENT_URL_2,
            content=CONTENT_2,
        )

        task = CreateValidSignPackageTask(task)
        task._get_documents_from_api()

        token = m.request_history[-1].headers["Authorization"].split(" ")[1]
        claims = jwt.decode(token, key="bar", algorithms=["HS256"])

        self.assertEqual(claims["client_id"], "foo")