Migrate time_date tests to use freezegun (#105409)
This commit is contained in:
parent
a0bf170fb4
commit
a090bcb8a5
1 changed files with 26 additions and 26 deletions
|
@ -1,29 +1,30 @@
|
|||
"""The tests for time_date sensor platform."""
|
||||
from unittest.mock import patch
|
||||
|
||||
from freezegun.api import FrozenDateTimeFactory
|
||||
|
||||
import homeassistant.components.time_date.sensor as time_date
|
||||
from homeassistant.core import HomeAssistant
|
||||
import homeassistant.util.dt as dt_util
|
||||
|
||||
|
||||
async def test_intervals(hass: HomeAssistant) -> None:
|
||||
async def test_intervals(hass: HomeAssistant, freezer: FrozenDateTimeFactory) -> None:
|
||||
"""Test timing intervals of sensors."""
|
||||
device = time_date.TimeDateSensor(hass, "time")
|
||||
now = dt_util.utc_from_timestamp(45.5)
|
||||
with patch("homeassistant.util.dt.utcnow", return_value=now):
|
||||
next_time = device.get_next_interval()
|
||||
freezer.move_to(now)
|
||||
next_time = device.get_next_interval()
|
||||
assert next_time == dt_util.utc_from_timestamp(60)
|
||||
|
||||
device = time_date.TimeDateSensor(hass, "beat")
|
||||
now = dt_util.parse_datetime("2020-11-13 00:00:29+01:00")
|
||||
with patch("homeassistant.util.dt.utcnow", return_value=now):
|
||||
next_time = device.get_next_interval()
|
||||
freezer.move_to(now)
|
||||
next_time = device.get_next_interval()
|
||||
assert next_time == dt_util.parse_datetime("2020-11-13 00:01:26.4+01:00")
|
||||
|
||||
device = time_date.TimeDateSensor(hass, "date_time")
|
||||
now = dt_util.utc_from_timestamp(1495068899)
|
||||
with patch("homeassistant.util.dt.utcnow", return_value=now):
|
||||
next_time = device.get_next_interval()
|
||||
freezer.move_to(now)
|
||||
next_time = device.get_next_interval()
|
||||
assert next_time == dt_util.utc_from_timestamp(1495068900)
|
||||
|
||||
now = dt_util.utcnow()
|
||||
|
@ -102,14 +103,16 @@ async def test_states_non_default_timezone(hass: HomeAssistant) -> None:
|
|||
assert device.state == "2017-05-17T20:54:00"
|
||||
|
||||
|
||||
async def test_timezone_intervals(hass: HomeAssistant) -> None:
|
||||
async def test_timezone_intervals(
|
||||
hass: HomeAssistant, freezer: FrozenDateTimeFactory
|
||||
) -> None:
|
||||
"""Test date sensor behavior in a timezone besides UTC."""
|
||||
hass.config.set_time_zone("America/New_York")
|
||||
|
||||
device = time_date.TimeDateSensor(hass, "date")
|
||||
now = dt_util.utc_from_timestamp(50000)
|
||||
with patch("homeassistant.util.dt.utcnow", return_value=now):
|
||||
next_time = device.get_next_interval()
|
||||
freezer.move_to(now)
|
||||
next_time = device.get_next_interval()
|
||||
# start of local day in EST was 18000.0
|
||||
# so the second day was 18000 + 86400
|
||||
assert next_time.timestamp() == 104400
|
||||
|
@ -117,43 +120,40 @@ async def test_timezone_intervals(hass: HomeAssistant) -> None:
|
|||
hass.config.set_time_zone("America/Edmonton")
|
||||
now = dt_util.parse_datetime("2017-11-13 19:47:19-07:00")
|
||||
device = time_date.TimeDateSensor(hass, "date")
|
||||
with patch("homeassistant.util.dt.utcnow", return_value=now):
|
||||
next_time = device.get_next_interval()
|
||||
freezer.move_to(now)
|
||||
next_time = device.get_next_interval()
|
||||
assert next_time.timestamp() == dt_util.as_timestamp("2017-11-14 00:00:00-07:00")
|
||||
|
||||
# Entering DST
|
||||
hass.config.set_time_zone("Europe/Prague")
|
||||
|
||||
now = dt_util.parse_datetime("2020-03-29 00:00+01:00")
|
||||
with patch("homeassistant.util.dt.utcnow", return_value=now):
|
||||
next_time = device.get_next_interval()
|
||||
freezer.move_to(now)
|
||||
next_time = device.get_next_interval()
|
||||
assert next_time.timestamp() == dt_util.as_timestamp("2020-03-30 00:00+02:00")
|
||||
|
||||
now = dt_util.parse_datetime("2020-03-29 03:00+02:00")
|
||||
with patch("homeassistant.util.dt.utcnow", return_value=now):
|
||||
next_time = device.get_next_interval()
|
||||
freezer.move_to(now)
|
||||
next_time = device.get_next_interval()
|
||||
assert next_time.timestamp() == dt_util.as_timestamp("2020-03-30 00:00+02:00")
|
||||
|
||||
# Leaving DST
|
||||
now = dt_util.parse_datetime("2020-10-25 00:00+02:00")
|
||||
with patch("homeassistant.util.dt.utcnow", return_value=now):
|
||||
next_time = device.get_next_interval()
|
||||
freezer.move_to(now)
|
||||
next_time = device.get_next_interval()
|
||||
assert next_time.timestamp() == dt_util.as_timestamp("2020-10-26 00:00:00+01:00")
|
||||
|
||||
now = dt_util.parse_datetime("2020-10-25 23:59+01:00")
|
||||
with patch("homeassistant.util.dt.utcnow", return_value=now):
|
||||
next_time = device.get_next_interval()
|
||||
freezer.move_to(now)
|
||||
next_time = device.get_next_interval()
|
||||
assert next_time.timestamp() == dt_util.as_timestamp("2020-10-26 00:00:00+01:00")
|
||||
|
||||
|
||||
@patch(
|
||||
"homeassistant.util.dt.utcnow",
|
||||
return_value=dt_util.parse_datetime("2017-11-14 02:47:19-00:00"),
|
||||
)
|
||||
async def test_timezone_intervals_empty_parameter(
|
||||
utcnow_mock, hass: HomeAssistant
|
||||
hass: HomeAssistant, freezer: FrozenDateTimeFactory
|
||||
) -> None:
|
||||
"""Test get_interval() without parameters."""
|
||||
freezer.move_to(dt_util.parse_datetime("2017-11-14 02:47:19-00:00"))
|
||||
hass.config.set_time_zone("America/Edmonton")
|
||||
device = time_date.TimeDateSensor(hass, "date")
|
||||
next_time = device.get_next_interval()
|
||||
|
|
Loading…
Add table
Reference in a new issue