From 5f68677d7fb079de059093fea1562fcc66bc3454 Mon Sep 17 00:00:00 2001 From: Erin <121973038+erinysong@users.noreply.github.com> Date: Thu, 30 Nov 2023 16:23:20 -0800 Subject: [PATCH] Raise system error message on EPP fail --- src/registrar/forms/application_wizard.py | 5 +++++ src/registrar/models/utility/domain_helper.py | 8 ++++++-- src/registrar/utility/errors.py | 4 ++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/registrar/forms/application_wizard.py b/src/registrar/forms/application_wizard.py index a70c23e52..428215fc0 100644 --- a/src/registrar/forms/application_wizard.py +++ b/src/registrar/forms/application_wizard.py @@ -392,6 +392,7 @@ CurrentSitesFormSet = forms.formset_factory( class AlternativeDomainForm(RegistrarForm): def clean_alternative_domain(self): """Validation code for domain names.""" + try: requested = self.cleaned_data.get("alternative_domain", None) validated = DraftDomain.validate(requested, blank_ok=True) @@ -399,6 +400,8 @@ class AlternativeDomainForm(RegistrarForm): raise forms.ValidationError(DOMAIN_API_MESSAGES["extra_dots"], code="extra_dots") except errors.DomainUnavailableError: raise forms.ValidationError(DOMAIN_API_MESSAGES["unavailable"], code="unavailable") + except errors.RegistrySystemError: + raise forms.ValidationError(DOMAIN_API_MESSAGES["error"], code="error") except ValueError: raise forms.ValidationError(DOMAIN_API_MESSAGES["invalid"], code="invalid") return validated @@ -484,6 +487,8 @@ class DotGovDomainForm(RegistrarForm): raise forms.ValidationError(DOMAIN_API_MESSAGES["extra_dots"], code="extra_dots") except errors.DomainUnavailableError: raise forms.ValidationError(DOMAIN_API_MESSAGES["unavailable"], code="unavailable") + except errors.RegistrySystemError: + raise forms.ValidationError(DOMAIN_API_MESSAGES["error"], code="error") except ValueError: raise forms.ValidationError(DOMAIN_API_MESSAGES["invalid"], code="invalid") return validated diff --git a/src/registrar/models/utility/domain_helper.py b/src/registrar/models/utility/domain_helper.py index 49badd5d7..5e4360fad 100644 --- a/src/registrar/models/utility/domain_helper.py +++ b/src/registrar/models/utility/domain_helper.py @@ -2,6 +2,7 @@ import re from api.views import check_domain_available from registrar.utility import errors +from registrar.utility.errors import GenericError, GenericErrorCodes class DomainHelper: @@ -40,8 +41,11 @@ class DomainHelper: raise errors.ExtraDotsError() if not DomainHelper.string_could_be_domain(domain + ".gov"): raise ValueError() - if not check_domain_available(domain): - raise errors.DomainUnavailableError() + try: + if not check_domain_available(domain): + raise errors.DomainUnavailableError() + except Exception: + raise errors.RegistrySystemError() return domain @classmethod diff --git a/src/registrar/utility/errors.py b/src/registrar/utility/errors.py index 486f00597..93b8855f3 100644 --- a/src/registrar/utility/errors.py +++ b/src/registrar/utility/errors.py @@ -13,6 +13,10 @@ class DomainUnavailableError(ValueError): pass +class RegistrySystemError(ValueError): + pass + + class ActionNotAllowed(Exception): """User accessed an action that is not allowed by the current state"""