Merge pull request #12363 from pfmoore/safe_isoformat

Handle ISO formats with a trailing Z
This commit is contained in:
Paul Moore 2023-10-17 12:29:43 +01:00 committed by GitHub
commit f3620cdb5b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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