mirror of
https://github.com/home-assistant/core.git
synced 2025-07-16 09:47:13 +00:00
Rewrite time_date unittest tests to pytest style test functions (#41149)
This commit is contained in:
parent
6b409dc811
commit
226a6f7584
@ -1,172 +1,148 @@
|
|||||||
"""The tests for time_date sensor platform."""
|
"""The tests for time_date sensor platform."""
|
||||||
import unittest
|
|
||||||
|
|
||||||
import homeassistant.components.time_date.sensor as time_date
|
import homeassistant.components.time_date.sensor as time_date
|
||||||
import homeassistant.util.dt as dt_util
|
import homeassistant.util.dt as dt_util
|
||||||
|
|
||||||
from tests.async_mock import patch
|
from tests.async_mock import patch
|
||||||
from tests.common import get_test_home_assistant
|
|
||||||
|
|
||||||
|
|
||||||
class TestTimeDateSensor(unittest.TestCase):
|
# pylint: disable=protected-access
|
||||||
"""Tests the time_date Sensor platform."""
|
async def test_intervals(hass):
|
||||||
|
"""Test timing intervals of sensors."""
|
||||||
|
device = time_date.TimeDateSensor(hass, "time")
|
||||||
|
now = dt_util.utc_from_timestamp(45)
|
||||||
|
next_time = device.get_next_interval(now)
|
||||||
|
assert next_time == dt_util.utc_from_timestamp(60)
|
||||||
|
|
||||||
# pylint: disable=invalid-name
|
device = time_date.TimeDateSensor(hass, "beat")
|
||||||
DEVICES = []
|
now = dt_util.utc_from_timestamp(29)
|
||||||
|
next_time = device.get_next_interval(now)
|
||||||
|
assert next_time == dt_util.utc_from_timestamp(86.4)
|
||||||
|
|
||||||
def add_entities(self, devices):
|
device = time_date.TimeDateSensor(hass, "date_time")
|
||||||
"""Mock add devices."""
|
now = dt_util.utc_from_timestamp(1495068899)
|
||||||
for device in devices:
|
next_time = device.get_next_interval(now)
|
||||||
self.DEVICES.append(device)
|
assert next_time == dt_util.utc_from_timestamp(1495068900)
|
||||||
|
|
||||||
def setUp(self):
|
now = dt_util.utcnow()
|
||||||
"""Initialize values for this testcase class."""
|
device = time_date.TimeDateSensor(hass, "time_date")
|
||||||
self.hass = get_test_home_assistant()
|
next_time = device.get_next_interval()
|
||||||
self.DEFAULT_TIME_ZONE = dt_util.DEFAULT_TIME_ZONE
|
assert next_time > now
|
||||||
self.addCleanup(self.tear_down_cleanup)
|
|
||||||
|
|
||||||
def tear_down_cleanup(self):
|
|
||||||
"""Stop everything that was started."""
|
|
||||||
dt_util.set_default_time_zone(self.DEFAULT_TIME_ZONE)
|
|
||||||
self.hass.stop()
|
|
||||||
|
|
||||||
# pylint: disable=protected-access
|
async def test_states(hass):
|
||||||
def test_intervals(self):
|
"""Test states of sensors."""
|
||||||
"""Test timing intervals of sensors."""
|
now = dt_util.utc_from_timestamp(1495068856)
|
||||||
device = time_date.TimeDateSensor(self.hass, "time")
|
device = time_date.TimeDateSensor(hass, "time")
|
||||||
now = dt_util.utc_from_timestamp(45)
|
device._update_internal_state(now)
|
||||||
next_time = device.get_next_interval(now)
|
assert device.state == "00:54"
|
||||||
assert next_time == dt_util.utc_from_timestamp(60)
|
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "beat")
|
device = time_date.TimeDateSensor(hass, "date")
|
||||||
now = dt_util.utc_from_timestamp(29)
|
device._update_internal_state(now)
|
||||||
next_time = device.get_next_interval(now)
|
assert device.state == "2017-05-18"
|
||||||
assert next_time == dt_util.utc_from_timestamp(86.4)
|
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "date_time")
|
device = time_date.TimeDateSensor(hass, "time_utc")
|
||||||
now = dt_util.utc_from_timestamp(1495068899)
|
device._update_internal_state(now)
|
||||||
next_time = device.get_next_interval(now)
|
assert device.state == "00:54"
|
||||||
assert next_time == dt_util.utc_from_timestamp(1495068900)
|
|
||||||
|
|
||||||
now = dt_util.utcnow()
|
device = time_date.TimeDateSensor(hass, "date_time")
|
||||||
device = time_date.TimeDateSensor(self.hass, "time_date")
|
device._update_internal_state(now)
|
||||||
next_time = device.get_next_interval()
|
assert device.state == "2017-05-18, 00:54"
|
||||||
assert next_time > now
|
|
||||||
|
|
||||||
def test_states(self):
|
device = time_date.TimeDateSensor(hass, "date_time_utc")
|
||||||
"""Test states of sensors."""
|
device._update_internal_state(now)
|
||||||
now = dt_util.utc_from_timestamp(1495068856)
|
assert device.state == "2017-05-18, 00:54"
|
||||||
device = time_date.TimeDateSensor(self.hass, "time")
|
|
||||||
device._update_internal_state(now)
|
|
||||||
assert device.state == "00:54"
|
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "date")
|
device = time_date.TimeDateSensor(hass, "beat")
|
||||||
device._update_internal_state(now)
|
device._update_internal_state(now)
|
||||||
assert device.state == "2017-05-18"
|
assert device.state == "@079"
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "time_utc")
|
device = time_date.TimeDateSensor(hass, "date_time_iso")
|
||||||
device._update_internal_state(now)
|
device._update_internal_state(now)
|
||||||
assert device.state == "00:54"
|
assert device.state == "2017-05-18T00:54:00"
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "date_time")
|
|
||||||
device._update_internal_state(now)
|
|
||||||
assert device.state == "2017-05-18, 00:54"
|
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "date_time_utc")
|
async def test_states_non_default_timezone(hass):
|
||||||
device._update_internal_state(now)
|
"""Test states of sensors in a timezone other than UTC."""
|
||||||
assert device.state == "2017-05-18, 00:54"
|
new_tz = dt_util.get_time_zone("America/New_York")
|
||||||
|
assert new_tz is not None
|
||||||
|
dt_util.set_default_time_zone(new_tz)
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "beat")
|
now = dt_util.utc_from_timestamp(1495068856)
|
||||||
device._update_internal_state(now)
|
device = time_date.TimeDateSensor(hass, "time")
|
||||||
assert device.state == "@079"
|
device._update_internal_state(now)
|
||||||
|
assert device.state == "20:54"
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "date_time_iso")
|
device = time_date.TimeDateSensor(hass, "date")
|
||||||
device._update_internal_state(now)
|
device._update_internal_state(now)
|
||||||
assert device.state == "2017-05-18T00:54:00"
|
assert device.state == "2017-05-17"
|
||||||
|
|
||||||
def test_states_non_default_timezone(self):
|
device = time_date.TimeDateSensor(hass, "time_utc")
|
||||||
"""Test states of sensors in a timezone other than UTC."""
|
device._update_internal_state(now)
|
||||||
new_tz = dt_util.get_time_zone("America/New_York")
|
assert device.state == "00:54"
|
||||||
assert new_tz is not None
|
|
||||||
dt_util.set_default_time_zone(new_tz)
|
|
||||||
|
|
||||||
now = dt_util.utc_from_timestamp(1495068856)
|
device = time_date.TimeDateSensor(hass, "date_time")
|
||||||
device = time_date.TimeDateSensor(self.hass, "time")
|
device._update_internal_state(now)
|
||||||
device._update_internal_state(now)
|
assert device.state == "2017-05-17, 20:54"
|
||||||
assert device.state == "20:54"
|
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "date")
|
device = time_date.TimeDateSensor(hass, "date_time_utc")
|
||||||
device._update_internal_state(now)
|
device._update_internal_state(now)
|
||||||
assert device.state == "2017-05-17"
|
assert device.state == "2017-05-18, 00:54"
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "time_utc")
|
device = time_date.TimeDateSensor(hass, "beat")
|
||||||
device._update_internal_state(now)
|
device._update_internal_state(now)
|
||||||
assert device.state == "00:54"
|
assert device.state == "@079"
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "date_time")
|
device = time_date.TimeDateSensor(hass, "date_time_iso")
|
||||||
device._update_internal_state(now)
|
device._update_internal_state(now)
|
||||||
assert device.state == "2017-05-17, 20:54"
|
assert device.state == "2017-05-17T20:54:00"
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "date_time_utc")
|
|
||||||
device._update_internal_state(now)
|
|
||||||
assert device.state == "2017-05-18, 00:54"
|
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "beat")
|
# pylint: disable=no-member
|
||||||
device._update_internal_state(now)
|
async def test_timezone_intervals(hass):
|
||||||
assert device.state == "@079"
|
"""Test date sensor behavior in a timezone besides UTC."""
|
||||||
|
new_tz = dt_util.get_time_zone("America/New_York")
|
||||||
|
assert new_tz is not None
|
||||||
|
dt_util.set_default_time_zone(new_tz)
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "date_time_iso")
|
device = time_date.TimeDateSensor(hass, "date")
|
||||||
device._update_internal_state(now)
|
now = dt_util.utc_from_timestamp(50000)
|
||||||
assert device.state == "2017-05-17T20:54:00"
|
next_time = device.get_next_interval(now)
|
||||||
|
# start of local day in EST was 18000.0
|
||||||
|
# so the second day was 18000 + 86400
|
||||||
|
assert next_time.timestamp() == 104400
|
||||||
|
|
||||||
# pylint: disable=no-member
|
new_tz = dt_util.get_time_zone("America/Edmonton")
|
||||||
def test_timezone_intervals(self):
|
assert new_tz is not None
|
||||||
"""Test date sensor behavior in a timezone besides UTC."""
|
dt_util.set_default_time_zone(new_tz)
|
||||||
new_tz = dt_util.get_time_zone("America/New_York")
|
now = dt_util.parse_datetime("2017-11-13 19:47:19-07:00")
|
||||||
assert new_tz is not None
|
device = time_date.TimeDateSensor(hass, "date")
|
||||||
dt_util.set_default_time_zone(new_tz)
|
next_time = device.get_next_interval(now)
|
||||||
|
assert next_time.timestamp() == dt_util.as_timestamp("2017-11-14 00:00:00-07:00")
|
||||||
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "date")
|
|
||||||
now = dt_util.utc_from_timestamp(50000)
|
|
||||||
next_time = device.get_next_interval(now)
|
|
||||||
# start of local day in EST was 18000.0
|
|
||||||
# so the second day was 18000 + 86400
|
|
||||||
assert next_time.timestamp() == 104400
|
|
||||||
|
|
||||||
new_tz = dt_util.get_time_zone("America/Edmonton")
|
@patch(
|
||||||
assert new_tz is not None
|
"homeassistant.util.dt.utcnow",
|
||||||
dt_util.set_default_time_zone(new_tz)
|
return_value=dt_util.parse_datetime("2017-11-14 02:47:19-00:00"),
|
||||||
now = dt_util.parse_datetime("2017-11-13 19:47:19-07:00")
|
)
|
||||||
device = time_date.TimeDateSensor(self.hass, "date")
|
async def test_timezone_intervals_empty_parameter(hass):
|
||||||
next_time = device.get_next_interval(now)
|
"""Test get_interval() without parameters."""
|
||||||
assert next_time.timestamp() == dt_util.as_timestamp(
|
new_tz = dt_util.get_time_zone("America/Edmonton")
|
||||||
"2017-11-14 00:00:00-07:00"
|
assert new_tz is not None
|
||||||
)
|
dt_util.set_default_time_zone(new_tz)
|
||||||
|
device = time_date.TimeDateSensor(hass, "date")
|
||||||
|
next_time = device.get_next_interval()
|
||||||
|
assert next_time.timestamp() == dt_util.as_timestamp("2017-11-14 00:00:00-07:00")
|
||||||
|
|
||||||
@patch(
|
|
||||||
"homeassistant.util.dt.utcnow",
|
|
||||||
return_value=dt_util.parse_datetime("2017-11-14 02:47:19-00:00"),
|
|
||||||
)
|
|
||||||
def test_timezone_intervals_empty_parameter(self, _):
|
|
||||||
"""Test get_interval() without parameters."""
|
|
||||||
new_tz = dt_util.get_time_zone("America/Edmonton")
|
|
||||||
assert new_tz is not None
|
|
||||||
dt_util.set_default_time_zone(new_tz)
|
|
||||||
device = time_date.TimeDateSensor(self.hass, "date")
|
|
||||||
next_time = device.get_next_interval()
|
|
||||||
assert next_time.timestamp() == dt_util.as_timestamp(
|
|
||||||
"2017-11-14 00:00:00-07:00"
|
|
||||||
)
|
|
||||||
|
|
||||||
def test_icons(self):
|
async def test_icons(hass):
|
||||||
"""Test attributes of sensors."""
|
"""Test attributes of sensors."""
|
||||||
device = time_date.TimeDateSensor(self.hass, "time")
|
device = time_date.TimeDateSensor(hass, "time")
|
||||||
assert device.icon == "mdi:clock"
|
assert device.icon == "mdi:clock"
|
||||||
device = time_date.TimeDateSensor(self.hass, "date")
|
device = time_date.TimeDateSensor(hass, "date")
|
||||||
assert device.icon == "mdi:calendar"
|
assert device.icon == "mdi:calendar"
|
||||||
device = time_date.TimeDateSensor(self.hass, "date_time")
|
device = time_date.TimeDateSensor(hass, "date_time")
|
||||||
assert device.icon == "mdi:calendar-clock"
|
assert device.icon == "mdi:calendar-clock"
|
||||||
device = time_date.TimeDateSensor(self.hass, "date_time_utc")
|
device = time_date.TimeDateSensor(hass, "date_time_utc")
|
||||||
assert device.icon == "mdi:calendar-clock"
|
assert device.icon == "mdi:calendar-clock"
|
||||||
device = time_date.TimeDateSensor(self.hass, "date_time_iso")
|
device = time_date.TimeDateSensor(hass, "date_time_iso")
|
||||||
assert device.icon == "mdi:calendar-clock"
|
assert device.icon == "mdi:calendar-clock"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user