diff --git a/certbot/client.py b/certbot/client.py index 03525cc0d..ef59c6ce3 100644 --- a/certbot/client.py +++ b/certbot/client.py @@ -151,10 +151,10 @@ def perform_registration(acme, config): except messages.Error as e: if e.typ == "urn:acme:error:invalidEmail": if config.noninteractive_mode: - msg = ("The email you specified was unable to be verified " - "by acme. Please ensure it is a valid email and " - "attempt registration again.") - raise errors.MissingCommandlineFlag(msg) + msg = ("The ACME server believes %s is an invalid email address. " + "Please ensure it is a valid email and attempt " + "registration again." % config.email) + raise errors.Error(msg) else: config.namespace.email = display_ops.get_email(invalid=True) return perform_registration(acme, config) diff --git a/certbot/tests/client_test.py b/certbot/tests/client_test.py index 29718c263..1ed63f466 100644 --- a/certbot/tests/client_test.py +++ b/certbot/tests/client_test.py @@ -61,13 +61,13 @@ class RegisterTest(unittest.TestCase): @mock.patch("certbot.account.report_new_account") @mock.patch("certbot.client.display_ops.get_email") - def test_email_retry(self, _rep, mock_get_email): + def test_email_invalid_noninteractive(self, _rep, mock_get_email): from acme import messages msg = "DNS problem: NXDOMAIN looking up MX for example.com" mx_err = messages.Error(detail=msg, typ="urn:acme:error:invalidEmail") with mock.patch("certbot.client.acme_client.Client") as mock_client: mock_client().register.side_effect = [mx_err, mock.MagicMock()] - self.assertRaises(errors.MissingCommandlineFlag, self._call) + self.assertRaises(errors.Error, self._call) def test_needs_email(self): self.config.email = None