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