diff --git a/certbot/display/ops.py b/certbot/display/ops.py index 4339cedd6..6762c2244 100644 --- a/certbot/display/ops.py +++ b/certbot/display/ops.py @@ -37,6 +37,7 @@ def get_email(invalid=False, optional=True): if optional: if invalid: msg += unsafe_suggestion + suggest_unsafe = False else: suggest_unsafe = True else: diff --git a/certbot/tests/display/ops_test.py b/certbot/tests/display/ops_test.py index bc0696f9c..82ed325c8 100644 --- a/certbot/tests/display/ops_test.py +++ b/certbot/tests/display/ops_test.py @@ -72,6 +72,14 @@ class GetEmailTest(unittest.TestCase): self.assertTrue( "--register-unsafely-without-email" not in call[0][0]) + def test_optional_invalid_unsafe(self): + invalid_txt = "There seem to be problems" + self.input.return_value = (display_util.OK, "foo@bar.baz") + with mock.patch("certbot.display.ops.util.safe_email") as mock_safe_email: + mock_safe_email.side_effect = [False, True] + self._call(invalid=True) + self.assertTrue(invalid_txt in self.input.call_args[0][0]) + class ChooseAccountTest(unittest.TestCase): """Tests for certbot.display.ops.choose_account."""