def test_status_with_informatieobject_indicatie_gebruiksrecht_null(self): zaak = ZaakFactory.create(zaaktype=self.zaaktype) zaak_url = reverse(zaak) io = EnkelvoudigInformatieObjectFactory.create( indicatie_gebruiksrecht=None) ZaakInformatieObjectFactory.create(zaak=zaak, informatieobject=io.canonical) resultaattype = ResultaatTypeFactory.create( archiefactietermijn="P10Y", archiefnominatie=Archiefnominatie.blijvend_bewaren, brondatum_archiefprocedure_afleidingswijze= BrondatumArchiefprocedureAfleidingswijze.afgehandeld, zaaktype=self.zaaktype, ) ResultaatFactory.create(zaak=zaak, resultaattype=resultaattype) list_url = reverse("status-list") response = self.client.post( list_url, { "zaak": zaak_url, "statustype": self.statustype_end_url, "datumStatusGezet": isodatetime(2019, 7, 22, 13, 00, 00), }, ) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) validation_error = get_validation_errors(response, "nonFieldErrors") self.assertEqual(validation_error["code"], "indicatiegebruiksrecht-unset")
def test_delete_zaak_cascades_properly(self): """ Deleting a zaak causes all related objects to be deleted as well. """ zaak = ZaakFactory.create() ZaakFactory.create(hoofdzaak=zaak) ZaakEigenschapFactory.create(zaak=zaak) StatusFactory.create(zaak=zaak) RolFactory.create(zaak=zaak) ResultaatFactory.create(zaak=zaak) ZaakObjectFactory.create(zaak=zaak) ZaakInformatieObjectFactory.create(zaak=zaak) KlantContactFactory.create(zaak=zaak) zaak_delete_url = get_operation_url("zaak_delete", uuid=zaak.uuid) response = self.client.delete(zaak_delete_url, **ZAAK_WRITE_KWARGS) self.assertEqual( response.status_code, status.HTTP_204_NO_CONTENT, response.data ) self.assertEqual(Zaak.objects.all().count(), 0) self.assertEqual(ZaakEigenschap.objects.all().count(), 0) self.assertEqual(Status.objects.all().count(), 0) self.assertEqual(Rol.objects.all().count(), 0) self.assertEqual(Resultaat.objects.all().count(), 0) self.assertEqual(ZaakObject.objects.all().count(), 0) self.assertEqual(ZaakInformatieObject.objects.all().count(), 0) self.assertEqual(KlantContact.objects.all().count(), 0)
def test_list_status_limited_to_authorized_zaken(self): url = reverse("resultaat-list") # must show up resultaat = ResultaatFactory.create( zaak__zaaktype=self.zaaktype, zaak__vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduiding.openbaar, ) # must not show up ResultaatFactory.create( zaak__zaaktype=self.zaaktype, zaak__vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduiding.vertrouwelijk, ) # must not show up ResultaatFactory.create( zaak__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(resultaat)}" )
def test_not_allowed_to_change_resultaattype(self): resultaat = ResultaatFactory.create() url = reverse(resultaat) resultaattype = ResultaatTypeFactory.create() resultaattype_url = reverse(resultaattype) response = self.client.patch( url, {"resultaattype": f"http://testserver{resultaattype_url}"}) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) validation_error = get_validation_errors(response, "resultaattype") self.assertEqual(validation_error["code"], IsImmutableValidator.code)
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)) 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_write_operations_forbidden(self): # scope not provided for writes, so this should 403 (not 404!) resultaat = ResultaatFactory.create( zaak__zaaktype=self.zaaktype, zaak__vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduiding.vertrouwelijk, ) url = reverse(resultaat) for method in ["put", "patch", "delete"]: with self.subTest(method=method): response = getattr(self.client, method)(url) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_cannot_read_without_correct_scope(self): zaak = ZaakFactory.create() status = StatusFactory.create() zaak_object = ZaakObjectFactory.create() resultaat = ResultaatFactory.create() urls = [ reverse("zaak-list"), reverse(zaak), reverse("status-list"), reverse(status), reverse("resultaat-list"), reverse(resultaat), reverse("zaakobject-list"), reverse(zaak_object), ] for url in urls: with self.subTest(url=url): self.assertForbidden(url, method="get", request_kwargs=ZAAK_READ_KWARGS)