示例#1
0
    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)
示例#2
0
    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'])
示例#3
0
    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)
示例#5
0
    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)
示例#7
0
    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)
示例#8
0
    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')