Handle ISO formats with a trailing Z

This commit is contained in:
Paul Moore 2023-10-17 11:04:34 +01:00
parent 9f213bf69a
commit fb06d12d5a
2 changed files with 11 additions and 1 deletions

1
news/12338.bugfix.rst Normal file
View File

@ -0,0 +1 @@
Handle a timezone indicator of Z when parsing dates in the self check.

View File

@ -39,6 +39,15 @@ def _get_statefile_name(key: str) -> str:
return name
def _convert_date(isodate: str) -> datetime.datetime:
"""Convert an ISO format string to a date.
Handles the format 2020-01-22T14:24:01Z (trailing Z)
which is not supported by older versions of fromisoformat.
"""
return datetime.datetime.fromisoformat(isodate.replace("Z", "+00:00"))
class SelfCheckState:
def __init__(self, cache_dir: str) -> None:
self._state: Dict[str, Any] = {}
@ -73,7 +82,7 @@ class SelfCheckState:
return None
# Determine if we need to refresh the state
last_check = datetime.datetime.fromisoformat(self._state["last_check"])
last_check = _convert_date(self._state["last_check"])
time_since_last_check = current_time - last_check
if time_since_last_check > _WEEK:
return None