Esempio n. 1
0
    def test_list_gebruiksrechten_limited_to_authorized_zaken(self):
        url = reverse("gebruiksrechten-list")
        # must show up
        gebruiksrechten1 = GebruiksrechtenFactory.create(
            informatieobject__latest_version__informatieobjecttype=
            "https://informatieobjecttype.nl/ok",
            informatieobject__latest_version__vertrouwelijkheidaanduiding=
            VertrouwelijkheidsAanduiding.openbaar,
        )
        # must not show up
        GebruiksrechtenFactory.create(
            informatieobject__latest_version__informatieobjecttype=
            "https://informatieobjecttype.nl/ok",
            informatieobject__latest_version__vertrouwelijkheidaanduiding=
            VertrouwelijkheidsAanduiding.vertrouwelijk,
        )
        # must not show up
        GebruiksrechtenFactory.create(
            informatieobject__latest_version__informatieobjecttype=
            "https://informatieobjecttype.nl/not_ok",
            informatieobject__latest_version__vertrouwelijkheidaanduiding=
            VertrouwelijkheidsAanduiding.openbaar,
        )

        response = self.client.get(url)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        response_data = response.json()
        self.assertEqual(len(response_data), 1)
        self.assertEqual(response_data[0]["url"],
                         f"http://testserver{reverse(gebruiksrechten1)}")
Esempio n. 2
0
    def test_filter_invalid_resource_url(self):
        GebruiksrechtenFactory.create()
        url = get_operation_url("gebruiksrechten_list")

        bad_urls = [
            "https://google.nl",
            "https://example.com/",
            "https://example.com/404",
        ]
        for bad_url in bad_urls:
            with self.subTest(bad_url=bad_url):
                response = self.client.get(url, {"informatieobject": bad_url})

                self.assertEqual(response.status_code, status.HTTP_200_OK)
                self.assertEqual(len(response.data), 0)
    def test_conditional_get_stale(self):
        gebruiksrecht = GebruiksrechtenFactory.create(with_etag=True)

        response = self.client.get(reverse(gebruiksrecht),
                                   HTTP_IF_NONE_MATCH=f'"not-an-md5"')

        self.assertEqual(response.status_code, status.HTTP_200_OK)
    def test_conditional_get_304(self):
        gebruiksrecht = GebruiksrechtenFactory.create(with_etag=True)
        response = self.client.get(
            reverse(gebruiksrecht),
            HTTP_IF_NONE_MATCH=f'"{gebruiksrecht._etag}"')

        self.assertEqual(response.status_code, status.HTTP_304_NOT_MODIFIED)
Esempio n. 5
0
    def test_delete_gebruiksrechten(self):
        gebruiksrechten = GebruiksrechtenFactory.create(
            informatieobject__latest_version__informatieobjecttype=
            INFORMATIEOBJECTTYPE,
            informatieobject__latest_version__identificatie="short",
        )
        url = reverse("gebruiksrechten-detail",
                      kwargs={"uuid": gebruiksrechten.uuid})
        eio_url = reverse(
            "enkelvoudiginformatieobject-detail",
            kwargs={
                "uuid": gebruiksrechten.informatieobject.latest_version.uuid
            },
        )

        eio_data = self.client.get(eio_url).json()
        self.assertTrue(eio_data["indicatieGebruiksrecht"])

        # delete the gebruiksrechten
        response = self.client.delete(url)

        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)

        eio_data = self.client.get(eio_url).json()
        self.assertIsNone(eio_data["indicatieGebruiksrecht"])
    def test_delete_document_cascades_properly(self):
        """
        Deleting a EnkelvoudigInformatieObject causes all related objects to be deleted as well.
        """
        informatieobject = EnkelvoudigInformatieObjectCanonicalFactory.create(
            latest_version__informatieobjecttype=INFORMATIEOBJECTTYPE)

        GebruiksrechtenFactory.create(informatieobject=informatieobject)

        informatieobject_delete_url = get_operation_url(
            'enkelvoudiginformatieobject_delete',
            uuid=informatieobject.latest_version.uuid)

        response = self.client.delete(informatieobject_delete_url)
        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT,
                         response.data)

        self.assertEqual(EnkelvoudigInformatieObject.objects.all().count(), 0)

        self.assertFalse(Gebruiksrechten.objects.all().exists())
    def test_delete_document_cascades_properly(self):
        """
        Deleting a EnkelvoudigInformatieObject causes all related objects to be deleted as well.
        """
        informatieobject = EnkelvoudigInformatieObjectFactory.create()

        GebruiksrechtenFactory.create(informatieobject=informatieobject)
        ObjectInformatieObjectFactory.create(informatieobject=informatieobject,
                                             is_zaak=True)

        informatieobject_delete_url = get_operation_url(
            'enkelvoudiginformatieobject_delete', uuid=informatieobject.uuid)

        response = self.client.delete(informatieobject_delete_url)
        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT,
                         response.data)

        self.assertEqual(EnkelvoudigInformatieObject.objects.all().count(), 0)

        self.assertFalse(Gebruiksrechten.objects.all().exists())
        self.assertFalse(ObjectInformatieObject.objects.all().exists())
    def test_block_clearing_indication(self):
        """
        If gebruiksrechten exist, you cannot change the indicatieGebruiksrechten
        anymore.
        """
        gebruiksrechten = GebruiksrechtenFactory.create()
        url = reverse('enkelvoudiginformatieobject-detail',
                      kwargs={'uuid': gebruiksrechten.informatieobject.uuid})

        for invalid_value in (None, False):
            data = {'indicatieGebruiksrecht': invalid_value}
            response = self.client.patch(url, data)

            self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
            error = get_validation_errors(response, 'indicatieGebruiksrecht')
            self.assertEqual(error['code'], 'existing-gebruiksrechten')
Esempio n. 9
0
    def test_cannot_read_without_correct_scope(self):
        eio = EnkelvoudigInformatieObjectFactory.create()
        gebruiksrechten = GebruiksrechtenFactory.create()
        oio = ObjectInformatieObjectFactory.create(is_besluit=True)
        urls = [
            reverse("enkelvoudiginformatieobject-list"),
            reverse("enkelvoudiginformatieobject-detail",
                    kwargs={"uuid": eio.uuid}),
            reverse("gebruiksrechten-list"),
            reverse(gebruiksrechten),
            reverse("objectinformatieobject-list"),
            reverse(oio),
        ]

        for url in urls:
            with self.subTest(url=url):
                self.assertForbidden(url, method="get")
    def test_delete_gebruiksrechten(self):
        gebruiksrechten = GebruiksrechtenFactory.create()
        url = reverse('gebruiksrechten-detail',
                      kwargs={'uuid': gebruiksrechten.uuid})
        eio_url = reverse(
            'enkelvoudiginformatieobject-detail',
            kwargs={'uuid': gebruiksrechten.informatieobject.uuid})

        eio_data = self.client.get(eio_url).json()
        self.assertTrue(eio_data['indicatieGebruiksrecht'])

        # delete the gebruiksrechten
        response = self.client.delete(url)

        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)

        eio_data = self.client.get(eio_url).json()
        self.assertIsNone(eio_data['indicatieGebruiksrecht'])
Esempio n. 11
0
    def test_block_clearing_indication(self):
        """
        If gebruiksrechten exist, you cannot change the indicatieGebruiksrechten
        anymore.
        """
        gebruiksrechten = GebruiksrechtenFactory.create(
            informatieobject__latest_version__informatieobjecttype=
            INFORMATIEOBJECTTYPE)
        url = reverse(
            "enkelvoudiginformatieobject-detail",
            kwargs={
                "uuid": gebruiksrechten.informatieobject.latest_version.uuid
            },
        )

        for invalid_value in (None, False):
            data = {"indicatieGebruiksrecht": invalid_value}
            response = self.client.patch(url, data)

            self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
            error = get_validation_errors(response, "indicatieGebruiksrecht")
            self.assertEqual(error["code"], "existing-gebruiksrechten")
    def test_gebruiksrecht_get_cache_header(self):
        gebruiksrecht = GebruiksrechtenFactory.create()

        response = self.client.get(reverse(gebruiksrecht))

        self.assertHasETag(response)
    def test_gebruiksrechthead_cache_header(self):
        gebruiksrecht = GebruiksrechtenFactory.create()

        self.assertHeadHasETag(reverse(gebruiksrecht))