mirror of
https://github.com/certbot/certbot.git
synced 2026-08-02 16:12:09 +02:00
Incorporate feedback from 4113 (#4115)
This commit is contained in:
+7
-9
@@ -681,16 +681,14 @@ class ClientNetwork(object): # pylint: disable=too-many-instance-attributes
|
|||||||
be retried once.
|
be retried once.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
should_retry = True
|
try:
|
||||||
while True:
|
return self._post_once(*args, **kwargs)
|
||||||
try:
|
except messages.Error as error:
|
||||||
|
if error.code == 'badNonce':
|
||||||
|
logger.debug('Retrying request after error:\n%s', error)
|
||||||
return self._post_once(*args, **kwargs)
|
return self._post_once(*args, **kwargs)
|
||||||
except messages.Error as error:
|
else:
|
||||||
if should_retry and error.code == 'badNonce':
|
raise
|
||||||
logger.debug('Retrying request after error:\n%s', error)
|
|
||||||
should_retry = False
|
|
||||||
else:
|
|
||||||
raise
|
|
||||||
|
|
||||||
def _post_once(self, url, obj, content_type=JOSE_CONTENT_TYPE, **kwargs):
|
def _post_once(self, url, obj, content_type=JOSE_CONTENT_TYPE, **kwargs):
|
||||||
data = self._wrap_in_jws(obj, self._get_nonce(url))
|
data = self._wrap_in_jws(obj, self._get_nonce(url))
|
||||||
|
|||||||
@@ -717,6 +717,16 @@ class ClientNetworkWithMockedResponseTest(unittest.TestCase):
|
|||||||
self.assertRaises(messages.Error, self.net.post, 'uri',
|
self.assertRaises(messages.Error, self.net.post, 'uri',
|
||||||
self.obj, content_type=self.content_type)
|
self.obj, content_type=self.content_type)
|
||||||
|
|
||||||
|
def test_post_not_retried(self):
|
||||||
|
check_response = mock.MagicMock()
|
||||||
|
check_response.side_effect = [messages.Error.with_code('malformed'),
|
||||||
|
self.checked_response]
|
||||||
|
|
||||||
|
# pylint: disable=protected-access
|
||||||
|
self.net._check_response = check_response
|
||||||
|
self.assertRaises(messages.Error, self.net.post, 'uri',
|
||||||
|
self.obj, content_type=self.content_type)
|
||||||
|
|
||||||
def test_post_successful_retry(self):
|
def test_post_successful_retry(self):
|
||||||
check_response = mock.MagicMock()
|
check_response = mock.MagicMock()
|
||||||
check_response.side_effect = [messages.Error.with_code('badNonce'),
|
check_response.side_effect = [messages.Error.with_code('badNonce'),
|
||||||
|
|||||||
Reference in New Issue
Block a user