diff --git a/src/common/dates.py b/src/common/dates.py index 3ceb0384..63c5d86b 100644 --- a/src/common/dates.py +++ b/src/common/dates.py @@ -119,3 +119,7 @@ def today_at_end_of_day() -> datetime.datetime: def today() -> datetime.date: """Create a date object with today's date.""" return datetime.datetime.now(tz=datetime.timezone.utc).date() + +def to_datetime(dt: datetime.date) -> datetime.datetime: + """Convert a date object to a datetime object at midnight.""" + return datetime.datetime(dt.year, dt.month, dt.day, tzinfo=datetime.timezone.utc) diff --git a/src/common/releasedata.py b/src/common/releasedata.py index 02784198..2b5f67a6 100644 --- a/src/common/releasedata.py +++ b/src/common/releasedata.py @@ -180,8 +180,10 @@ class ProductData: def get_version(self, version_name: str) -> ProductVersion: return self.versions[version_name] if version_name in self.versions else None - def declare_version(self, version_name: str, versions_date: datetime) -> None: + def declare_version(self, version_name: str, versions_date: datetime|date) -> None: self.updated = True + + versions_date = dates.to_datetime(versions_date) if isinstance(versions_date, date) else versions_date if versions_date > dates.today_at_end_of_day(): logging.warning(f"skipping declaration of version {version_name} with future date {versions_date} for {self}") return