mirror of
https://github.com/certbot/certbot.git
synced 2026-07-30 16:14:44 +02:00
Handle missing dnspython by displaying a warning message
This commit is contained in:
@@ -15,6 +15,7 @@ import zope.interface
|
||||
from functools import partial
|
||||
|
||||
from acme import challenges
|
||||
from acme import errors as acme_errors
|
||||
|
||||
from certbot import errors
|
||||
from certbot import interfaces
|
||||
@@ -213,9 +214,15 @@ s.serve_forever()" """
|
||||
response=response)
|
||||
self._ip_logging_permission(formated_message)
|
||||
|
||||
if not response.simple_verify(
|
||||
try:
|
||||
verification_status = response.simple_verify(
|
||||
achall.chall, achall.domain,
|
||||
achall.account_key.public_key()):
|
||||
achall.account_key.public_key())
|
||||
except acme_errors.DependencyError:
|
||||
verification_status = False
|
||||
logger.warning("Dns challenge requires `dnspython`")
|
||||
|
||||
if not verification_status:
|
||||
logger.warning("Self-verify of challenge failed.")
|
||||
|
||||
return response
|
||||
|
||||
@@ -5,6 +5,7 @@ import unittest
|
||||
import mock
|
||||
|
||||
from acme import challenges
|
||||
from acme import errors as acme_errors
|
||||
from acme import jose
|
||||
|
||||
from certbot import achallenges
|
||||
@@ -78,6 +79,19 @@ class AuthenticatorTest(unittest.TestCase):
|
||||
self.auth.perform(self.achalls)
|
||||
self.assertEqual(2, mock_logger.warning.call_count)
|
||||
|
||||
@mock.patch("certbot.plugins.manual.zope.component.getUtility")
|
||||
@mock.patch("acme.challenges.DNS01Response.simple_verify")
|
||||
@mock.patch("six.moves.input")
|
||||
def test_perform_missing_dependency(self, mock_raw_input, mock_verify, mock_interaction):
|
||||
mock_interaction().yesno.return_value = True
|
||||
mock_verify.side_effect = acme_errors.DependencyError()
|
||||
|
||||
with mock.patch("certbot.plugins.manual.logger") as mock_logger:
|
||||
self.auth.perform([self.dns01])
|
||||
self.assertEqual(2, mock_logger.warning.call_count)
|
||||
|
||||
mock_raw_input.assert_called_once_with("Press ENTER to continue")
|
||||
|
||||
@mock.patch("certbot.plugins.manual.zope.component.getUtility")
|
||||
@mock.patch("certbot.plugins.manual.Authenticator._notify_and_wait")
|
||||
def test_disagree_with_ip_logging(self, mock_notify, mock_interaction):
|
||||
|
||||
Reference in New Issue
Block a user