def test_enkel_initiele_status_met_scope_aanmaken(self): """ Met de scope zaken.aanmaken mag je enkel een status aanmaken als er nog geen status was. """ zaak = ZaakFactory.create(zaaktype=self.zaaktype) zaak_url = reverse(zaak) status_list_url = reverse("status-list") # initiele status response = self.client.post( status_list_url, { "zaak": zaak_url, "statustype": self.statustype_url, "datumStatusGezet": isodatetime(2018, 10, 1, 10, 00, 00), }, ) self.assertEqual(response.status_code, status.HTTP_201_CREATED) # extra status - mag niet, onafhankelijk van de data response = self.client.post( status_list_url, { "zaak": zaak_url, "statustype": self.statustype_url, "datumStatusGezet": isodatetime(2018, 10, 2, 10, 00, 00), }, ) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(zaak.status_set.count(), 1)
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_statustype_valid_resource(self): zaak = ZaakFactory.create(zaaktype=self.zaaktype) zaak_url = reverse(zaak) list_url = reverse("status-list") response = self.client.post( list_url, { "zaak": zaak_url, "statustype": self.statustype_url, "datumStatusGezet": isodatetime(2018, 10, 1, 10, 00, 00), }, ) self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.data)
def test_status_datum_status_gezet_cannot_be_in_future(self): zaak = ZaakFactory.create(zaaktype=self.zaaktype) zaak_url = reverse(zaak) list_url = reverse("status-list") response = self.client.post( list_url, { "zaak": zaak_url, "statustype": self.statustype_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, "datumStatusGezet") self.assertEqual(validation_error["code"], "date-in-future")
def test_statustype_zaaktype_mismatch(self): zaak = ZaakFactory.create() zaak_url = reverse(zaak) list_url = reverse("status-list") response = self.client.post( list_url, { "zaak": zaak_url, "statustype": self.statustype_url, "datumStatusGezet": isodatetime(2018, 10, 1, 10, 00, 00), }, ) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) error = get_validation_errors(response, "nonFieldErrors") self.assertEqual(error["code"], "zaaktype-mismatch")
def test_statustype_invalid_resource(self): zaak = ZaakFactory.create(zaaktype=self.zaaktype) zaak_url = reverse(zaak) list_url = reverse("status-list") response = self.client.post( list_url, { "zaak": zaak_url, "statustype": "https://ander.statustype.nl/foo/bar", "datumStatusGezet": isodatetime(2018, 10, 1, 10, 00, 00), }, ) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) error = get_validation_errors(response, "statustype") self.assertEqual(error["code"], "no_match")
def test_zaak_archiefactiedatum_afleidingswijze_ingangsdatum_besluit(self): zaaktype = ZaakTypeFactory.create() zaak = ZaakFactory.create(zaaktype=zaaktype) zaak_url = reverse(zaak) statustype1 = StatusTypeFactory.create(zaaktype=zaaktype) statustype1_url = reverse(statustype1) statustype2 = StatusTypeFactory.create(zaaktype=zaaktype) statustype2_url = reverse(statustype2) resultaattype = ResultaatTypeFactory.create( zaaktype=zaaktype, archiefactietermijn=relativedelta(years=10), archiefnominatie=Archiefnominatie.blijvend_bewaren, brondatum_archiefprocedure_afleidingswijze= BrondatumArchiefprocedureAfleidingswijze.ingangsdatum_besluit, ) resultaattype_url = reverse(resultaattype) BesluitFactory.create(zaak=zaak, ingangsdatum="2020-05-03") # Set initial status status_list_url = reverse("status-list") response = self.client.post( status_list_url, { "zaak": zaak_url, "statustype": f"http://testserver{statustype1_url}", "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) # add a result for the case resultaat_create_url = get_operation_url("resultaat_create") data = { "zaak": zaak_url, "resultaattype": f"http://testserver{resultaattype_url}", "toelichting": "", } response = self.client.post(resultaat_create_url, data) self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.data) # Set eindstatus datum_status_gezet = utcdatetime(2018, 10, 22, 10, 00, 00) response = self.client.post( status_list_url, { "zaak": zaak_url, "statustype": f"http://testserver{statustype2_url}", "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()) self.assertEqual( zaak.archiefactiedatum, date(2030, 5, 3) # 2020-05-03 + 10 years )