Ejemplo n.º 1
0
 def test_icons(self):
     """Test attributes of sensors."""
     device = time_date.TimeDateSensor(self.hass, 'time')
     assert device.icon == "mdi:clock"
     device = time_date.TimeDateSensor(self.hass, 'date')
     assert device.icon == "mdi:calendar"
     device = time_date.TimeDateSensor(self.hass, 'date_time')
     assert device.icon == "mdi:calendar-clock"
     device = time_date.TimeDateSensor(self.hass, 'date_time_iso')
     assert device.icon == "mdi:calendar-clock"
Ejemplo n.º 2
0
async def test_icons(hass):
    """Test attributes of sensors."""
    device = time_date.TimeDateSensor(hass, "time")
    assert device.icon == "mdi:clock"
    device = time_date.TimeDateSensor(hass, "date")
    assert device.icon == "mdi:calendar"
    device = time_date.TimeDateSensor(hass, "date_time")
    assert device.icon == "mdi:calendar-clock"
    device = time_date.TimeDateSensor(hass, "date_time_utc")
    assert device.icon == "mdi:calendar-clock"
    device = time_date.TimeDateSensor(hass, "date_time_iso")
    assert device.icon == "mdi:calendar-clock"
Ejemplo n.º 3
0
async def test_timezone_intervals(hass):
    """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(hass, "date")
    now = dt_util.utc_from_timestamp(50000)
    with patch("homeassistant.util.dt.utcnow", return_value=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

    new_tz = dt_util.get_time_zone("America/Edmonton")
    assert new_tz is not None
    dt_util.set_default_time_zone(new_tz)
    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()
    assert next_time.timestamp() == dt_util.as_timestamp(
        "2017-11-14 00:00:00-07:00")

    # Entering DST
    new_tz = dt_util.get_time_zone("Europe/Prague")
    assert new_tz is not None
    dt_util.set_default_time_zone(new_tz)

    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()
    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()
    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()
    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()
    assert next_time.timestamp() == dt_util.as_timestamp(
        "2020-10-26 00:00:00+01:00")
Ejemplo n.º 4
0
async def test_timezone_intervals_empty_parameter(utcnow_mock, hass):
    """Test get_interval() without parameters."""
    hass.config.set_time_zone("America/Edmonton")
    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")
Ejemplo n.º 5
0
async def test_timezone_intervals_empty_parameter(hass):
    """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(hass, "date")
    next_time = device.get_next_interval()
    assert next_time.timestamp() == dt_util.as_timestamp("2017-11-14 00:00:00-07:00")
Ejemplo n.º 6
0
    def test_states_non_default_timezone(self):
        """Test states of sensors in a timezone other than 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)

        now = dt_util.utc_from_timestamp(1495068856)
        device = time_date.TimeDateSensor(self.hass, "time")
        device._update_internal_state(now)
        assert device.state == "20:54"

        device = time_date.TimeDateSensor(self.hass, "date")
        device._update_internal_state(now)
        assert device.state == "2017-05-17"

        device = time_date.TimeDateSensor(self.hass, "time_utc")
        device._update_internal_state(now)
        assert device.state == "00:54"

        device = time_date.TimeDateSensor(self.hass, "date_time")
        device._update_internal_state(now)
        assert device.state == "2017-05-17, 20:54"

        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")
        device._update_internal_state(now)
        assert device.state == "@079"

        device = time_date.TimeDateSensor(self.hass, "date_time_iso")
        device._update_internal_state(now)
        assert device.state == "2017-05-17T20:54:00"
Ejemplo n.º 7
0
    def test_states(self):
        """Test states of sensors."""
        now = dt_util.utc_from_timestamp(1495068856)
        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._update_internal_state(now)
        assert device.state == "2017-05-18"

        device = time_date.TimeDateSensor(self.hass, "time_utc")
        device._update_internal_state(now)
        assert device.state == "00:54"

        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")
        device._update_internal_state(now)
        assert device.state == "2017-05-18, 00:54"

        device = time_date.TimeDateSensor(self.hass, "beat")
        device._update_internal_state(now)
        assert device.state == "@079"

        device = time_date.TimeDateSensor(self.hass, "date_time_iso")
        device._update_internal_state(now)
        assert device.state == "2017-05-18T00:54:00"
Ejemplo n.º 8
0
async def test_states(hass):
    """Test states of sensors."""
    hass.config.set_time_zone("UTC")

    now = dt_util.utc_from_timestamp(1495068856)
    device = time_date.TimeDateSensor(hass, "time")
    device._update_internal_state(now)
    assert device.state == "00:54"

    device = time_date.TimeDateSensor(hass, "date")
    device._update_internal_state(now)
    assert device.state == "2017-05-18"

    device = time_date.TimeDateSensor(hass, "time_utc")
    device._update_internal_state(now)
    assert device.state == "00:54"

    device = time_date.TimeDateSensor(hass, "date_time")
    device._update_internal_state(now)
    assert device.state == "2017-05-18, 00:54"

    device = time_date.TimeDateSensor(hass, "date_time_utc")
    device._update_internal_state(now)
    assert device.state == "2017-05-18, 00:54"

    device = time_date.TimeDateSensor(hass, "beat")
    device._update_internal_state(now)
    assert device.state == "@079"
    device._update_internal_state(dt_util.utc_from_timestamp(1602952963.2))
    assert device.state == "@738"

    device = time_date.TimeDateSensor(hass, "date_time_iso")
    device._update_internal_state(now)
    assert device.state == "2017-05-18T00:54:00"
Ejemplo n.º 9
0
 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'))
Ejemplo n.º 10
0
async def test_timezone_intervals(hass):
    """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(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")
    assert new_tz is not None
    dt_util.set_default_time_zone(new_tz)
    now = dt_util.parse_datetime("2017-11-13 19:47:19-07:00")
    device = time_date.TimeDateSensor(hass, "date")
    next_time = device.get_next_interval(now)
    assert next_time.timestamp() == dt_util.as_timestamp("2017-11-14 00:00:00-07:00")
Ejemplo n.º 11
0
    def test_intervals(self):
        """Test timing intervals of sensors."""
        device = time_date.TimeDateSensor(self.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)

        device = time_date.TimeDateSensor(self.hass, "beat")
        now = dt_util.utc_from_timestamp(29)
        next_time = device.get_next_interval(now)
        assert next_time == dt_util.utc_from_timestamp(86.4)

        device = time_date.TimeDateSensor(self.hass, "date_time")
        now = dt_util.utc_from_timestamp(1495068899)
        next_time = device.get_next_interval(now)
        assert next_time == dt_util.utc_from_timestamp(1495068900)

        now = dt_util.utcnow()
        device = time_date.TimeDateSensor(self.hass, "time_date")
        next_time = device.get_next_interval()
        assert next_time > now
Ejemplo n.º 12
0
async def test_intervals(hass):
    """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()
    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()
    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()
    assert next_time == dt_util.utc_from_timestamp(1495068900)

    now = dt_util.utcnow()
    device = time_date.TimeDateSensor(hass, "time_date")
    next_time = device.get_next_interval()
    assert next_time > now