Life is simpler if we don't support HTTP/1.0 ACME servers

(Though in practice with py27+ we still support them)
This commit is contained in:
Peter Eckersley 2016-02-16 11:04:52 -08:00
parent 49aeffdebb
commit 7c8638f108
2 changed files with 7 additions and 16 deletions

View file

@ -262,19 +262,14 @@ class Client(object): # pylint: disable=too-many-instance-attributes
try:
seconds = int(retry_after)
except ValueError:
# pylint: disable=no-member
when = parsedate_tz(retry_after)
try:
year = when[0] # raises TypeError if t is None
# py26: Handle two-digit years -- but any server that thinks
# "retry after 99" means "come back after 1999" is.. deprecated
if year >= 0 and year < 100:
when = [year + 2000] + list(when[1:]) # pragma: no cover
tzone = when[-1] if when[-1] else 0
# raises ValueError/OverflowError
return datetime.datetime(*when[:7]) - datetime.timedelta(tzone)
except (TypeError, ValueError, OverflowError):
seconds = default
if when is not None:
try:
tz_secs = datetime.timedelta(when[-1] if when[-1] else 0)
return datetime.datetime(*when[:7]) - tz_secs
except (ValueError, OverflowError):
pass
seconds = default
return datetime.datetime.now() + datetime.timedelta(seconds=seconds)

View file

@ -194,10 +194,6 @@ class ClientTest(unittest.TestCase):
self.assertEqual(
datetime.datetime(1999, 12, 31, 23, 59, 59),
self.client.retry_after(response=self.response, default=10))
self.response.headers['Retry-After'] = 'Fri, 31-Dec-17 23:59:59 GMT'
self.assertEqual(
datetime.datetime(2017, 12, 31, 23, 59, 59),
self.client.retry_after(response=self.response, default=10))
@mock.patch('acme.client.datetime')
def test_retry_after_invalid(self, dt_mock):