diff --git a/tests/patch_time.py b/tests/patch_time.py index a93d3c8ec4f..362296ab8b2 100644 --- a/tests/patch_time.py +++ b/tests/patch_time.py @@ -5,9 +5,7 @@ from __future__ import annotations import datetime import time -from homeassistant import runner, util -from homeassistant.helpers import event as event_helper -from homeassistant.util import dt as dt_util +# Do not add any Home Assistant import here def _utcnow() -> datetime.datetime: @@ -20,10 +18,21 @@ def _monotonic() -> float: return time.monotonic() -# Replace partial functions which are not found by freezegun +# Before importing any other Home Assistant functionality, import and replace +# partial dt_util.utcnow with a regular function which can be found by freezegun +from homeassistant import util # noqa: E402 +from homeassistant.util import dt as dt_util # noqa: E402 + dt_util.utcnow = _utcnow # type: ignore[assignment] -event_helper.time_tracker_utcnow = _utcnow # type: ignore[assignment] util.utcnow = _utcnow # type: ignore[assignment] + +# Import other Home Assistant functionality which we need to patch +from homeassistant import runner # noqa: E402 +from homeassistant.helpers import event as event_helper # noqa: E402 + +# Replace partial functions which are not found by freezegun +event_helper.time_tracker_utcnow = _utcnow # type: ignore[assignment] + # Replace bound methods which are not found by freezegun runner.monotonic = _monotonic # type: ignore[assignment]