def test_is_editable_has_met_requirements_and_value_updates(self, *args): """ Ensure that the requirements for `is_editable` are met in order for EditIdentityProviderAdminForm to validate and that once it is valid, calling update_identity_provider() updates the `is_editable` field on the IdentityProvider as expected. """ post_data = self._get_post_data(is_editable=True) edit_idp_form = EditIdentityProviderAdminForm(self.idp, post_data) edit_idp_form.cleaned_data = post_data with self.assertRaises(forms.ValidationError): edit_idp_form.clean_is_editable() email_domain = AuthenticatedEmailDomain.objects.create( identity_provider=self.idp, email_domain='vaultwax.com', ) with self.assertRaises(forms.ValidationError): edit_idp_form.clean_is_editable() UserExemptFromSingleSignOn.objects.create( username='******', email_domain=email_domain, ) self.assertTrue(edit_idp_form.is_valid()) edit_idp_form.update_identity_provider(self.accounting_admin) idp = IdentityProvider.objects.get(id=self.idp.id) self.assertTrue(idp.is_editable)
def test_bad_slug_update_is_invalid(self, *args): """ Ensure that if passed a bad slug, EditIdentityProviderAdminForm raises a ValidationError and does not validate. """ post_data = self._get_post_data(slug='bad slug') edit_idp_form = EditIdentityProviderAdminForm(self.idp, post_data) edit_idp_form.cleaned_data = post_data with self.assertRaises(forms.ValidationError): edit_idp_form.clean_slug() self.assertFalse(edit_idp_form.is_valid())
def test_slug_update_conflict(self, *args): """ Ensure that if another IdentityProvider exists with the same slug, EditIdentityProviderAdminForm raises a ValidationError and does not validate. """ second_idp = IdentityProvider.objects.create( owner=self.account, name='Azure AD for VWX', slug='vwx', created_by='*****@*****.**', last_modified_by='*****@*****.**', ) post_data = self._get_post_data(slug=second_idp.slug) edit_idp_form = EditIdentityProviderAdminForm(self.idp, post_data) edit_idp_form.cleaned_data = post_data with self.assertRaises(forms.ValidationError): edit_idp_form.clean_slug() self.assertFalse(edit_idp_form.is_valid())