def test_zaak_heropen_reset_einddatum(self): token = generate_jwt([SCOPE_STATUSSEN_TOEVOEGEN]) self.client.credentials(HTTP_AUTHORIZATION=token) zaak = ZaakFactory.create(einddatum='2019-01-07') StatusFactory.create( zaak=zaak, status_type= 'http://example.com/ztc/api/v1/catalogussen/1/zaaktypen/1/statustypen/2', datum_status_gezet='2019-01-07T12:51:41+0000', ) zaak_url = reverse('zaak-detail', kwargs={'uuid': zaak.uuid}) status_list_url = reverse('status-list') # Set status other than eindstatus datum_status_gezet = utcdatetime(2019, 1, 7, 12, 53, 25) response = self.client.post( status_list_url, { 'zaak': zaak_url, 'statusType': 'http://example.com/ztc/api/v1/catalogussen/1/zaaktypen/1/statustypen/1', 'datumStatusGezet': datum_status_gezet.isoformat(), }) self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.content) zaak.refresh_from_db() self.assertIsNone(zaak.einddatum)
def test_pagination_page_param(self): zaaktype = 'https://example.com/ztc/api/v1/zaaktypen/1234' ZaakFactory.create_batch(2, zaaktype=zaaktype) token = generate_jwt(scopes=[SCOPE_ZAKEN_ALLES_LEZEN], zaaktypes=[zaaktype]) self.client.credentials(HTTP_AUTHORIZATION=token) url = reverse(Zaak) response = self.client.get(url, {'page': 1}, **ZAAK_READ_KWARGS) self.assertEqual(response.status_code, status.HTTP_200_OK) response_data = response.json() self.assertEqual(response_data['count'], 2) self.assertIsNone(response_data['previous']) self.assertIsNone(response_data['next'])
def test_deelzaken(self): hoofdzaak = ZaakFactory.create() deelzaak = ZaakFactory.create(hoofdzaak=hoofdzaak) detail_url = reverse(hoofdzaak) deelzaak_url = reverse(deelzaak) token = generate_jwt(scopes=self.scopes, zaaktypes=[hoofdzaak.zaaktype]) self.client.credentials(HTTP_AUTHORIZATION=token) response = self.client.get(detail_url, **ZAAK_READ_KWARGS) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.json()['deelzaken'], [f"http://testserver{deelzaak_url}"])
def test_zaak_with_result(self): """ Test that the zaak-detail correctly contains the URL to the result. """ zaak = ZaakFactory.create() resultaat = ResultaatFactory.create(zaak=zaak) zaak_url = 'http://testserver{path}'.format(path=reverse(zaak)) resultaat_url = 'http://testserver{path}'.format(path=reverse(resultaat)) token = generate_jwt(scopes=[SCOPE_ZAKEN_ALLES_LEZEN], zaaktypes=[zaak.zaaktype]) self.client.credentials(HTTP_AUTHORIZATION=token) response = self.client.get(zaak_url, **ZAAK_READ_KWARGS) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.json()['resultaat'], resultaat_url)
def test_zaak_met_producten(self): url = reverse('zaak-list') token = generate_jwt(scopes=self.scopes + [SCOPE_ZAKEN_BIJWERKEN], zaaktypes=['https://example.com/zaaktype/123']) self.client.credentials(HTTP_AUTHORIZATION=token) responses = { 'https://example.com/zaaktype/123': { 'url': 'https://example.com/zaaktype/123', 'productenOfDiensten': [ 'https://example.com/product/123', 'https://example.com/dienst/123', ] } } with mock_client(responses): response = self.client.post( url, { 'zaaktype': 'https://example.com/zaaktype/123', 'vertrouwelijkheidaanduiding': VertrouwelijkheidsAanduiding.openbaar, 'bronorganisatie': '517439943', 'verantwoordelijkeOrganisatie': '517439943', 'registratiedatum': '2018-12-24', 'startdatum': '2018-12-24', 'productenOfDiensten': ['https://example.com/product/123'], }, **ZAAK_WRITE_KWARGS) self.assertEqual(response.status_code, status.HTTP_201_CREATED) zaak = Zaak.objects.get() self.assertEqual(len(zaak.producten_of_diensten), 1) # update with mock_client(responses): response2 = self.client.patch( response.data['url'], { 'productenOfDiensten': [ 'https://example.com/product/123', 'https://example.com/dienst/123', ] }, **ZAAK_WRITE_KWARGS) self.assertEqual(response2.status_code, status.HTTP_200_OK) zaak.refresh_from_db() self.assertEqual(len(zaak.producten_of_diensten), 2)
def test_zaaktypes_wildcard(self): zaak = ZaakFactory.create() list_url = reverse('zaak-list') detail_url = reverse('zaak-detail', kwargs={'uuid': zaak.uuid}) jwt = generate_jwt( scopes=[SCOPE_ZAKEN_ALLES_LEZEN], zaaktypes=['*'], ) self.client.credentials(HTTP_AUTHORIZATION=jwt) list_response = self.client.get(list_url, HTTP_ACCEPT_CRS='EPSG:4326') detail_response = self.client.get(detail_url, HTTP_ACCEPT_CRS='EPSG:4326') self.assertEqual(list_response.status_code, status.HTTP_200_OK) self.assertEqual(detail_response.status_code, status.HTTP_200_OK) self.assertEqual(len(list_response.data['results']), 1)
def test_zaak_betalingsindicatie_nvt(self): zaak = ZaakFactory.create( betalingsindicatie=BetalingsIndicatie.gedeeltelijk, laatste_betaaldatum=timezone.now()) url = reverse(zaak) token = generate_jwt(scopes=[SCOPE_ZAKEN_BIJWERKEN], zaaktypes=[zaak.zaaktype]) self.client.credentials(HTTP_AUTHORIZATION=token) response = self.client.patch( url, { 'betalingsindicatie': BetalingsIndicatie.nvt, }, **ZAAK_WRITE_KWARGS) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.json()['laatsteBetaaldatum'], None) zaak.refresh_from_db() self.assertIsNone(zaak.laatste_betaaldatum)
def test_zaak_afsluiten(self): zaak = ZaakFactory.create() zaak_url = reverse('zaak-detail', kwargs={'uuid': zaak.uuid}) status_list_url = reverse('status-list') token = generate_jwt([SCOPE_STATUSSEN_TOEVOEGEN]) self.client.credentials(HTTP_AUTHORIZATION=token) # Validate StatusTypes from Mock client ztc_mock_client = ZTCMockClient() status_type_1 = ztc_mock_client.retrieve('statustype', uuid=1) self.assertFalse(status_type_1['isEindstatus']) status_type_2 = ztc_mock_client.retrieve('statustype', uuid=2) self.assertTrue(status_type_2['isEindstatus']) # Set initial status response = self.client.post( status_list_url, { 'zaak': zaak_url, 'statusType': 'http://example.com/ztc/api/v1/catalogussen/1/zaaktypen/1/statustypen/1', 'datumStatusGezet': isodatetime(2018, 10, 1, 10, 00, 00), }) self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.content) zaak.refresh_from_db() self.assertIsNone(zaak.einddatum) # Set eindstatus datum_status_gezet = utcdatetime(2018, 10, 22, 10, 00, 00) response = self.client.post( status_list_url, { 'zaak': zaak_url, 'statusType': 'http://example.com/ztc/api/v1/catalogussen/1/zaaktypen/1/statustypen/2', 'datumStatusGezet': datum_status_gezet.isoformat(), }) self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.content) zaak.refresh_from_db() self.assertEqual(zaak.einddatum, datum_status_gezet.date())
def test_zaaktypes_claim(self): """ Assert you can only read ZAAKen of the zaaktypes in the claim. """ ZaakFactory.create(zaaktype='https://zaaktype.nl/ok') ZaakFactory.create(zaaktype='https://zaaktype.nl/not_ok') url = reverse('zaak-list') jwt = generate_jwt( scopes=[SCOPE_ZAKEN_ALLES_LEZEN], zaaktypes=['https://zaaktype.nl/ok'], ) self.client.credentials(HTTP_AUTHORIZATION=jwt) response = self.client.get(url, HTTP_ACCEPT_CRS='EPSG:4326') self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data['results'] self.assertEqual(len(results), 1) self.assertEqual(results[0]['zaaktype'], 'https://zaaktype.nl/ok')