def test_resultaattype_detail_with_read_only_user(self, m): user = UserFactory.create(is_staff=True) view_resultaattype = Permission.objects.get(codename="view_resultaattype") user.user_permissions.add(view_resultaattype) self.app.set_user(user) selectielijst_api = "https://selectielijst.openzaak.nl/api/v1/" procestype_url = ( f"{selectielijst_api}procestypen/e1b73b12-b2f6-4c4e-8929-94f84dd2a57d" ) resultaat_url = ( f"{selectielijst_api}resultaten/cc5ae4e3-a9e6-4386-bcee-46be4986a829" ) omschrijving_url = ( "https://referentielijsten-api.vng.cloud/api/v1/" "resultaattypeomschrijvingen/e6a0c939-3404-45b0-88e3-76c94fb80ea7" ) mock_oas_get(m) mock_resource_list(m, "resultaattypeomschrijvingen") mock_resource_list(m, "resultaten") mock_resource_get(m, "procestypen", procestype_url) mock_resource_get(m, "resultaten", resultaat_url) mock_resource_get(m, "resultaattypeomschrijvingen", omschrijving_url) resultaattype = ResultaatTypeFactory.create( zaaktype__selectielijst_procestype=procestype_url, selectielijstklasse=resultaat_url, resultaattypeomschrijving=omschrijving_url, ) url = reverse("admin:catalogi_resultaattype_change", args=(resultaattype.pk,)) response = self.app.get(url) self.assertEqual(response.status_code, 200)
def test_zaaktype_no_notify_on_no_change(self, m): procestype_url = ("https://selectielijst.openzaak.nl/api/v1/" "procestypen/e1b73b12-b2f6-4c4e-8929-94f84dd2a57d") mock_oas_get(m) mock_resource_list(m, "procestypen") mock_resource_get(m, "procestypen", procestype_url) mock_nrc_oas_get(m) m.post("https://notificaties-api.vng.cloud/api/v1/notificaties", status_code=201) zaaktype = ZaakTypeFactory.create( concept=True, zaaktype_omschrijving="test", vertrouwelijkheidaanduiding="openbaar", trefwoorden=["test"], verantwoordingsrelatie=["bla"], selectielijst_procestype=procestype_url, ) url = reverse("admin:catalogi_zaaktype_change", args=(zaaktype.pk, )) response = self.app.get(url) form = response.forms["zaaktype_form"] with capture_on_commit_callbacks(execute=True): form.submit("_save") called_urls = [item.url for item in m.request_history] self.assertNotIn( "https://notificaties-api.vng.cloud/api/v1/notificaties", called_urls)
def test_zaaktype_notify_on_create(self, m): mock_oas_get(m) mock_resource_list(m, "procestypen") mock_nrc_oas_get(m) m.post("https://notificaties-api.vng.cloud/api/v1/notificaties", status_code=201) url = reverse("admin:catalogi_zaaktype_add") response = self.app.get(url) form = response.forms["zaaktype_form"] form["zaaktype_omschrijving"] = "test" form["doel"] = "test" form["aanleiding"] = "test" form["indicatie_intern_of_extern"].select("intern") form["handeling_initiator"] = "test" form["onderwerp"] = "test" form["handeling_behandelaar"] = "test" form["doorlooptijd_behandeling_days"] = 12 form["opschorting_en_aanhouding_mogelijk"].select(False) form["verlenging_mogelijk"].select(False) form["vertrouwelijkheidaanduiding"].select("openbaar") form["producten_of_diensten"] = "https://example.com/foobarbaz" form["referentieproces_naam"] = "test" form["catalogus"] = self.catalogus.pk form["datum_begin_geldigheid"] = "21-11-2019" with capture_on_commit_callbacks(execute=True): form.submit("_save") called_urls = [item.url for item in m.request_history] self.assertIn("https://notificaties-api.vng.cloud/api/v1/notificaties", called_urls)
def test_submit_zaaktype_required_fields(self, m): catalogus = CatalogusFactory.create() url = reverse("admin:catalogi_zaaktype_add") mock_oas_get(m) mock_resource_list(m, "procestypen") add_page = self.app.get(url) form = add_page.form form["zaaktype_omschrijving"] = "test" form["doel"] = "test" form["aanleiding"] = "test" form["indicatie_intern_of_extern"].select("intern") form["handeling_initiator"] = "test" form["onderwerp"] = "test" form["handeling_behandelaar"] = "test" form["doorlooptijd_behandeling_days"] = 12 form["opschorting_en_aanhouding_mogelijk"].select(False) form["verlenging_mogelijk"].select(False) form["vertrouwelijkheidaanduiding"].select("openbaar") form["producten_of_diensten"] = "https://example.com/foobarbaz" form["referentieproces_naam"] = "test" form["catalogus"] = catalogus.pk form["datum_begin_geldigheid"] = "21-11-2019" response = form.submit() # redirect on succesfull create, 200 on validation errors, 500 on db errors self.assertEqual(response.status_code, 302) self.assertEqual(ZaakType.objects.count(), 1)
def test_selectielijst_selectielijstklasse(self, m): """ Test that the selectielijst procestype field is a dropdown. """ procestype_url = ( "https://selectielijst.openzaak.nl/api/v1/" "procestypen/e1b73b12-b2f6-4c4e-8929-94f84dd2a57d" ) mock_oas_get(m) mock_resource_list(m, "resultaattypeomschrijvingen") mock_resource_list(m, "resultaten") mock_resource_get(m, "procestypen", procestype_url) zaaktype = ResultaatTypeFactory.create( zaaktype__selectielijst_procestype=procestype_url ) url = reverse("admin:catalogi_resultaattype_change", args=(zaaktype.pk,)) response = self.app.get(url) self.assertEqual(response.status_code, 200) form = response.forms["resultaattype_form"] field = form.fields["selectielijstklasse"][0] self.assertEqual(field.tag, "input") # first element of JSON response self.assertEqual( field._value, "https://selectielijst.openzaak.nl/api/v1/resultaten/cc5ae4e3-a9e6-4386-bcee-46be4986a829", )
def test_zaaktype_detail(self, m): mock_oas_get(m) mock_resource_list(m, "procestypen") zaaktype = ZaakTypeFactory.create() url = reverse("admin:catalogi_zaaktype_change", args=(zaaktype.pk, )) response = self.app.get(url) self.assertEqual(response.status_code, 200)
def test_readonly_resultaattype(self, m): """ check that in case of published zaaktype, resultaattype page is readonly """ selectielijst_api = "https://selectielijst.openzaak.nl/api/v1/" procestype_url = ( f"{selectielijst_api}procestypen/e1b73b12-b2f6-4c4e-8929-94f84dd2a57d" ) resultaat_url = ( f"{selectielijst_api}resultaten/cc5ae4e3-a9e6-4386-bcee-46be4986a829" ) omschrijving_url = ( "https://referentielijsten-api.vng.cloud/api/v1/" "resultaattypeomschrijvingen/e6a0c939-3404-45b0-88e3-76c94fb80ea7") mock_oas_get(m) mock_resource_list(m, "resultaattypeomschrijvingen") mock_resource_list(m, "resultaten") mock_resource_get(m, "procestypen", procestype_url) mock_resource_get(m, "resultaten", resultaat_url) mock_resource_get(m, "resultaattypeomschrijvingen", omschrijving_url) resultaattype = ResultaatTypeFactory.create( zaaktype__concept=False, zaaktype__selectielijst_procestype=procestype_url, selectielijstklasse=resultaat_url, resultaattypeomschrijving=omschrijving_url, archiefactietermijn=relativedelta(years=5), ) url = reverse("admin:catalogi_resultaattype_change", args=(resultaattype.pk, )) response = self.app.get(url) form = response.form form_fields = list(form.fields.keys()) resultaattype_fields = [ f.name for f in resultaattype._meta.get_fields() ] for field in resultaattype_fields: self.assertEqual(field in form_fields, False) # check custom formatting selectielijstklasse = response.html.find( class_="field-selectielijstklasse").div.div self.assertEqual(selectielijstklasse.text, "1.1 - Ingericht - vernietigen") omschrijving = response.html.find( class_="field-resultaattypeomschrijving").div.div self.assertEqual(omschrijving.text, "Afgewezen") archiefactietermijn = response.html.find( class_="field-archiefactietermijn").div.div self.assertEqual(archiefactietermijn.text, "5 years")
def test_zaaktype_detail(self, m): mock_oas_get(m) mock_resource_list(m, "procestypen") zaaktype = ZaakTypeFactory.create() url = reverse("admin:catalogi_zaaktype_change", args=(zaaktype.pk, )) response = self.app.get(url) self.assertEqual(response.status_code, 200) # Verify that the save button is visible save_button = response.html.find("input", {"name": "_save"}) self.assertIsNotNone(save_button)
def test_publish_zaaktype(self, m): procestype_url = ("https://selectielijst.openzaak.nl/api/v1/" "procestypen/e1b73b12-b2f6-4c4e-8929-94f84dd2a57d") mock_oas_get(m) mock_resource_list(m, "procestypen") mock_resource_get(m, "procestypen", procestype_url) mock_nrc_oas_get(m) m.post("https://notificaties-api.vng.cloud/api/v1/notificaties", status_code=201) zaaktype = ZaakTypeFactory.create( concept=True, zaaktype_omschrijving="test", vertrouwelijkheidaanduiding="openbaar", trefwoorden=["test"], verantwoordingsrelatie=["bla"], selectielijst_procestype=procestype_url, ) url = reverse("admin:catalogi_zaaktype_change", args=(zaaktype.pk, )) response = self.app.get(url) # Verify that the publish button is visible and enabled publish_button = response.html.find("input", {"name": "_publish"}) self.assertIsNotNone(publish_button) publish_button = response.html.find("input", { "name": "_publish", "disabled": "disabled" }) self.assertIsNone(publish_button) form = response.forms["zaaktype_form"] with capture_on_commit_callbacks(execute=True): response = form.submit("_publish").follow() zaaktype.refresh_from_db() self.assertFalse(zaaktype.concept) # Verify that the publish button is disabled publish_button = response.html.find("input", { "name": "_publish", "disabled": "disabled" }) self.assertIsNotNone(publish_button) # Verify notification is sent called_urls = [item.url for item in m.request_history] self.assertIn("https://notificaties-api.vng.cloud/api/v1/notificaties", called_urls)
def test_resultaattype_detail(self, m): procestype_url = ("https://selectielijst.openzaak.nl/api/v1/" "procestypen/e1b73b12-b2f6-4c4e-8929-94f84dd2a57d") mock_oas_get(m) mock_resource_list(m, "resultaattypeomschrijvingen") mock_resource_list(m, "resultaten") mock_resource_get(m, "procestypen", procestype_url) resultaattype = ResultaatTypeFactory.create( zaaktype__selectielijst_procestype=procestype_url) url = reverse("admin:catalogi_resultaattype_change", args=(resultaattype.pk, )) response = self.app.get(url) self.assertEqual(response.status_code, 200)
def setUp(self): super().setUp() mocker = requests_mock.Mocker() mocker.start() self.addCleanup(mocker.stop) mock_oas_get(mocker) mock_resource_list(mocker, "procestypen") mock_resource_get( mocker, "procestypen", ("https://selectielijst.openzaak.nl/api/v1/" "procestypen/e1b73b12-b2f6-4c4e-8929-94f84dd2a57d"), )
def test_publish_zaaktype_related_to_concept_informatieobjecttype_fails( self, m): mock_oas_get(m) mock_resource_list(m, "procestypen") zaaktype = ZaakTypeFactory.create( concept=True, zaaktype_omschrijving="test", vertrouwelijkheidaanduiding="openbaar", trefwoorden=["test"], verantwoordingsrelatie=["bla"], ) ZaakTypeInformatieObjectTypeFactory.create( informatieobjecttype__concept=True, zaaktype=zaaktype) url = reverse("admin:catalogi_zaaktype_change", args=(zaaktype.pk, )) response = self.app.get(url) # Verify that the publish button is visible and enabled publish_button = response.html.find("input", {"name": "_publish"}) self.assertIsNotNone(publish_button) publish_button = response.html.find("input", { "name": "_publish", "disabled": "disabled" }) self.assertIsNone(publish_button) form = response.forms["zaaktype_form"] response = form.submit("_publish").follow() zaaktype.refresh_from_db() self.assertTrue(zaaktype.concept) # Check that the error is shown on the page error_message = response.html.find("li", {"class": "error"}) self.assertIn("should be published", error_message.text) # Verify that the publish button is still visible and enabled. publish_button = response.html.find("input", {"name": "_publish"}) self.assertIsNotNone(publish_button) publish_button = response.html.find("input", { "name": "_publish", "disabled": "disabled" }) self.assertIsNone(publish_button)
def test_zaaktype_producten_of_diensten_empty_save(self, m): mock_oas_get(m) mock_resource_list(m, "procestypen") zaaktype = ZaakTypeFactory.create(producten_of_diensten=[]) url = reverse("admin:catalogi_zaaktype_change", args=(zaaktype.pk, )) response = self.app.get(url) self.assertEqual(response.status_code, 200) form = response.form response = form.submit("_save") self.assertEqual(response.status_code, 200) self.assertIsNone( response.html.select_one( ".field-producten_of_diensten .errorlist"))
def test_resultaattype_detail_no_procestype(self, m): procestype_url = "" mock_oas_get(m) mock_resource_list(m, "resultaattypeomschrijvingen") mock_resource_list(m, "resultaten") resultaattype = ResultaatTypeFactory.create( zaaktype__selectielijst_procestype=procestype_url) url = reverse("admin:catalogi_resultaattype_change", args=(resultaattype.pk, )) response = self.app.get(url) self.assertEqual(response.status_code, 200) self.assertIn( _("Please select a Procestype for the related ZaakType to get " "proper filtering of selectielijstklasses"), response.text, )
def test_create_resultaattype_selectielijst_bewaartermijn_null(self, m): """ Test if creating a resultaattype with selectielijstklasse.bewaartermijn = null is possible """ procestype_url = ( "https://selectielijst.openzaak.nl/api/v1/" "procestypen/e1b73b12-b2f6-4c4e-8929-94f84dd2a57d" ) selectielijstklasse_url = ( "https://selectielijst.openzaak.nl/api/v1/" "resultaten/8320ab7d-3a8d-4c8b-b94a-14b4fa374d0a" ) omschrijving_url = ( "https://referentielijsten-api.vng.cloud/api/v1/" "resultaattypeomschrijvingen/e6a0c939-3404-45b0-88e3-76c94fb80ea7" ) mock_oas_get(m) mock_resource_list(m, "resultaattypeomschrijvingen") mock_resource_list(m, "resultaten") mock_resource_get(m, "procestypen", procestype_url) mock_resource_get(m, "resultaten", selectielijstklasse_url) mock_resource_get(m, "resultaattypeomschrijvingen", omschrijving_url) zaaktype = ZaakTypeFactory.create(selectielijst_procestype=procestype_url) url = reverse("admin:catalogi_resultaattype_add") response = self.app.get(url) self.assertEqual(response.status_code, 200) form = response.forms["resultaattype_form"] form["zaaktype"] = zaaktype.pk form["omschrijving"] = "test" form["selectielijstklasse"] = selectielijstklasse_url form["resultaattypeomschrijving"] = omschrijving_url form["brondatum_archiefprocedure_afleidingswijze"] = "ingangsdatum_besluit" response = form.submit() self.assertEqual(response.status_code, 302) self.assertEqual(ResultaatType.objects.count(), 1) self.assertEqual(ResultaatType.objects.first().omschrijving, "test")
def test_resultaattype_detail(self, m): procestype_url = ("https://selectielijst.openzaak.nl/api/v1/" "procestypen/e1b73b12-b2f6-4c4e-8929-94f84dd2a57d") mock_oas_get(m) mock_resource_list(m, "resultaattypeomschrijvingen") mock_resource_list(m, "resultaten") mock_resource_get(m, "procestypen", procestype_url) resultaattype = ResultaatTypeFactory.create( zaaktype__selectielijst_procestype=procestype_url) url = reverse("admin:catalogi_resultaattype_change", args=(resultaattype.pk, )) response = self.app.get(url) self.assertEqual(response.status_code, 200) # Verify that the save button is visible save_button = response.html.find("input", {"name": "_save"}) self.assertIsNotNone(save_button)
def test_publish_zaaktype(self, m): procestype_url = ("https://selectielijst.openzaak.nl/api/v1/" "procestypen/e1b73b12-b2f6-4c4e-8929-94f84dd2a57d") mock_oas_get(m) mock_resource_list(m, "procestypen") mock_resource_get(m, "procestypen", procestype_url) zaaktype = ZaakTypeFactory.create( concept=True, zaaktype_omschrijving="test", vertrouwelijkheidaanduiding="openbaar", trefwoorden=["test"], verantwoordingsrelatie=["bla"], selectielijst_procestype=procestype_url, ) url = reverse("admin:catalogi_zaaktype_change", args=(zaaktype.pk, )) response = self.app.get(url) # Verify that the publish button is visible and enabled publish_button = response.html.find("input", {"name": "_publish"}) self.assertIsNotNone(publish_button) publish_button = response.html.find("input", { "name": "_publish", "disabled": "disabled" }) self.assertIsNone(publish_button) form = response.forms["zaaktype_form"] response = form.submit("_publish").follow() zaaktype.refresh_from_db() self.assertFalse(zaaktype.concept) # Verify that the publish button is disabled publish_button = response.html.find("input", { "name": "_publish", "disabled": "disabled" }) self.assertIsNotNone(publish_button)
def test_selectielijst_procestype(self, m): """ Test that the selectielijst procestype field is a dropdown. """ mock_oas_get(m) mock_resource_list(m, "procestypen") zaaktype = ZaakTypeFactory.create() url = reverse("admin:catalogi_zaaktype_change", args=(zaaktype.pk, )) response = self.app.get(url) self.assertEqual(response.status_code, 200) form = response.forms["zaaktype_form"] field = form.fields["selectielijst_procestype"][0] self.assertEqual(field.tag, "select") # first element of JSON response self.assertEqual( field.value, "https://selectielijst.openzaak.nl/api/v1/procestypen/e1b73b12-b2f6-4c4e-8929-94f84dd2a57d", )
def test_create_new_version_fail_no_datum_einde_geldigheid(self, m): mock_oas_get(m) mock_resource_list(m, "procestypen") zaaktype_ = ZaakTypeFactory.create( zaaktype_omschrijving="test", vertrouwelijkheidaanduiding="openbaar", trefwoorden=["test"], verantwoordingsrelatie=["bla"], ) url = reverse("admin:catalogi_zaaktype_change", args=(zaaktype_.pk, )) get_response = self.app.get(url) form = get_response.form post_response = form.submit("_addversion") error_message = post_response.html.find(class_="errorlist") self.assertIn( "datum_einde_geldigheid is required if the new version is being created", error_message.text, )
def test_submit_zaaktype_validate_doorlooptijd_servicenorm(self, m): catalogus = CatalogusFactory.create() url = reverse("admin:catalogi_zaaktype_add") mock_oas_get(m) mock_resource_list(m, "procestypen") add_page = self.app.get(url) form = add_page.form form["zaaktype_omschrijving"] = "test" form["doel"] = "test" form["aanleiding"] = "test" form["indicatie_intern_of_extern"].select("intern") form["handeling_initiator"] = "test" form["onderwerp"] = "test" form["handeling_behandelaar"] = "test" form["doorlooptijd_behandeling_days"] = 12 form["servicenorm_behandeling_days"] = 15 form["opschorting_en_aanhouding_mogelijk"].select(False) form["verlenging_mogelijk"].select(False) form["vertrouwelijkheidaanduiding"].select("openbaar") form["producten_of_diensten"] = "https://example.com/foobarbaz" form["referentieproces_naam"] = "test" form["catalogus"] = catalogus.pk form["datum_begin_geldigheid"] = "21-11-2019" response = form.submit() # redirect on succesfull create, 200 on validation errors, 500 on db errors self.assertEqual(response.status_code, 200) form = response.context["adminform"].form self.assertEqual( form.errors["__all__"], [ "'Servicenorm behandeling' periode mag niet langer zijn dan " "de periode van 'Doorlooptijd behandeling'." ], )
def test_create_new_version(self, m): mock_oas_get(m) mock_resource_list(m, "procestypen") mock_nrc_oas_get(m) m.post("https://notificaties-api.vng.cloud/api/v1/notificaties", status_code=201) zaaktype_old = ZaakTypeFactory.create( zaaktype_omschrijving="test", vertrouwelijkheidaanduiding="openbaar", trefwoorden=["test"], verantwoordingsrelatie=["bla"], ) # reverse fk relations statustype_old = StatusTypeFactory.create(zaaktype=zaaktype_old) resultaattypeomschrijving = "https://example.com/resultaattypeomschrijving/1" m.register_uri("GET", resultaattypeomschrijving, json={"omschrijving": "init"}) resultaattype_old = ResultaatTypeFactory.create( zaaktype=zaaktype_old, resultaattypeomschrijving=resultaattypeomschrijving) roltype_old = RolTypeFactory.create(zaaktype=zaaktype_old) eigenschap_old = EigenschapFactory.create(zaaktype=zaaktype_old) zaaktypenrelatie_old = ZaakTypenRelatieFactory.create( zaaktype=zaaktype_old) # m2m relations besluittype = BesluitTypeFactory.create(zaaktypen=[zaaktype_old]) informatieobjecttype = ZaakTypeInformatieObjectTypeFactory.create( zaaktype=zaaktype_old).informatieobjecttype # not copied ZaakFactory.create(zaaktype=zaaktype_old) url = reverse("admin:catalogi_zaaktype_change", args=(zaaktype_old.pk, )) get_response = self.app.get(url) form = get_response.form form["datum_einde_geldigheid"] = "2019-01-01" with capture_on_commit_callbacks(execute=True): post_response = form.submit("_addversion") zaaktype_old.refresh_from_db() self.assertEqual(zaaktype_old.datum_einde_geldigheid, date(2019, 1, 1)) zaaktype_new = ZaakType.objects.exclude(pk=zaaktype_old.pk).get() # check that the new zaak has the same identificator self.assertEqual(zaaktype_new.identificatie, zaaktype_old.identificatie) # check version dates self.assertEqual(zaaktype_new.datum_einde_geldigheid, None) self.assertEqual(zaaktype_new.datum_begin_geldigheid, date(2019, 11, 1)) self.assertEqual(zaaktype_new.versiedatum, date(2019, 11, 1)) self.assertTrue(zaaktype_new.concept) # response redirect to correct page self.assertEqual( post_response.location, reverse("admin:catalogi_zaaktype_change", args=(zaaktype_new.pk, )), ) # assert the new relations are created self.assertNotEqual(zaaktype_new.statustypen.get().id, statustype_old.id) self.assertNotEqual(zaaktype_new.resultaattypen.get().id, resultaattype_old.id) self.assertNotEqual(zaaktype_new.roltype_set.get().id, roltype_old.id) self.assertNotEqual(zaaktype_new.eigenschap_set.get().id, eigenschap_old.id) self.assertNotEqual(zaaktype_new.zaaktypenrelaties.get().id, zaaktypenrelatie_old.id) # assert m2m relations are saved self.assertEqual(zaaktype_new.besluittypen.get().id, besluittype.id) self.assertEqual(zaaktype_new.informatieobjecttypen.get().id, informatieobjecttype.id) # assert new zaken are not created self.assertEqual(zaaktype_new.zaak_set.count(), 0) # Verify notification is sent called_urls = [item.url for item in m.request_history] self.assertIn("https://notificaties-api.vng.cloud/api/v1/notificaties", called_urls)
def test_create_new_version(self, m): mock_oas_get(m) mock_resource_list(m, "procestypen") zaaktype_old = ZaakTypeFactory.create( zaaktype_omschrijving="test", vertrouwelijkheidaanduiding="openbaar", trefwoorden=["test"], verantwoordingsrelatie=["bla"], ) # reverse fk relations statustype_old = StatusTypeFactory.create(zaaktype=zaaktype_old) resultaattype_old = ResultaatTypeFactory.create(zaaktype=zaaktype_old) roltype_old = RolTypeFactory.create(zaaktype=zaaktype_old) eigenschap_old = EigenschapFactory.create(zaaktype=zaaktype_old) zaaktypenrelatie_old = ZaakTypenRelatieFactory.create( zaaktype=zaaktype_old) # m2m relations besluittype = BesluitTypeFactory.create(zaaktypen=[zaaktype_old]) informatieobjecttype = ZaakTypeInformatieObjectTypeFactory.create( zaaktype=zaaktype_old).informatieobjecttype # not copied ZaakFactory.create(zaaktype=zaaktype_old) url = reverse("admin:catalogi_zaaktype_change", args=(zaaktype_old.pk, )) get_response = self.app.get(url) form = get_response.form form["datum_einde_geldigheid"] = "2019-01-01" post_response = form.submit("_addversion") zaaktype_old.refresh_from_db() self.assertEqual(zaaktype_old.datum_einde_geldigheid, date(2019, 1, 1)) zaaktype_new = ZaakType.objects.exclude(pk=zaaktype_old.pk).get() # check that the new zaak has the same identificator self.assertEqual(zaaktype_new.identificatie, zaaktype_old.identificatie) # check version dates self.assertEqual(zaaktype_new.datum_einde_geldigheid, None) self.assertEqual(zaaktype_new.datum_begin_geldigheid, date(2019, 11, 1)) self.assertEqual(zaaktype_new.versiedatum, date(2019, 11, 1)) self.assertTrue(zaaktype_new.concept) # response redirect to correct page self.assertEqual( post_response.location, reverse("admin:catalogi_zaaktype_change", args=(zaaktype_new.pk, )), ) # assert the new relations are created self.assertNotEqual(zaaktype_new.statustypen.get().id, statustype_old.id) self.assertNotEqual(zaaktype_new.resultaattypen.get().id, resultaattype_old.id) self.assertNotEqual(zaaktype_new.roltype_set.get().id, roltype_old.id) self.assertNotEqual(zaaktype_new.eigenschap_set.get().id, eigenschap_old.id) self.assertNotEqual(zaaktype_new.zaaktypenrelaties.get().id, zaaktypenrelatie_old.id) # assert m2m relations are saved self.assertEqual(zaaktype_new.besluittypen.get().id, besluittype.id) self.assertEqual(zaaktype_new.informatieobjecttypen.get().id, informatieobjecttype.id) # assert new zaken are not created self.assertEqual(zaaktype_new.zaak_set.count(), 0)
def test_create_resultaattype_selectielijst_filtered_by_procestype(self, m): """ Test that the selectielijst procestype field is a dropdown. """ procestype_url = ( "https://selectielijst.openzaak.nl/api/v1/" "procestypen/e1b73b12-b2f6-4c4e-8929-94f84dd2a57d" ) mock_oas_get(m) mock_resource_list(m, "resultaattypeomschrijvingen") selectielijstklasse_url = ( "https://selectielijst.openzaak.nl/api/v1/" "resultaten/d92e5a77-c523-4273-b8e0-c912115ef156" ) m.get( f"{_get_base_url()}resultaten?{urlencode({'procesType': procestype_url})}", json={ "count": 100, "next": None, "previous": None, "results": [ { "algemeenBestuurEnInrichtingOrganisatie": True, "alleTaakgebieden": False, "bedrijfsvoeringEnPersoneel": True, "bewaartermijn": "P5Y", "burgerzaken": True, "economie": False, "generiek": True, "heffenBelastingen": False, "herkomst": "Risicoanalyse", "naam": "Niet doorgegaan", "nummer": 4, "omschrijving": "", "onderwijs": False, "procesType": procestype_url, "procestermijn": "nihil", "procestermijnOpmerking": "", "procestermijnWeergave": "Nihil", "publiekeInformatieEnRegistratie": False, "sociaalDomein": False, "specifiek": False, "sportCultuurEnRecreatie": False, "toelichting": "", "url": selectielijstklasse_url, "veiligheid": False, "verkeerEnVervoer": False, "vhrosv": False, "volksgezonheidEnMilieu": False, "volledigNummer": "1.4", "waardering": "vernietigen", }, ], }, ) mock_resource_get(m, "procestypen", procestype_url) zaaktype = ZaakTypeFactory.create(selectielijst_procestype=procestype_url) query_params = urlencode( { "zaaktype__id__exact": zaaktype.id, "zaaktype": zaaktype.id, "catalogus": zaaktype.catalogus.pk, } ) url = f"{reverse('admin:catalogi_resultaattype_add')}?_changelist_filters={query_params}" response = self.app.get(url) self.assertEqual(response.status_code, 200) form = response.forms["resultaattype_form"] zaaktype_procestype = ( response.html("div", {"class": "field-get_zaaktype_procestype"})[0] .find_all("div")[-1] .text ) self.assertEqual(zaaktype_procestype, "1 - Instellen en inrichten organisatie") field = form.fields["selectielijstklasse"][0] self.assertEqual(field.tag, "input") self.assertEqual(len(field.options), 1) # first element of JSON response self.assertEqual( field._value, "https://selectielijst.openzaak.nl/api/v1/resultaten/d92e5a77-c523-4273-b8e0-c912115ef156", )