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'")
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.", )
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" }, )
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", }, )
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": "", }, )
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": "", }, )
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")
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)
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")
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))
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", }, )
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")
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")
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", }, ], }, )
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))
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")