def test_bad_template(self): """Test Exception when the template cannot be parsed.""" bad = Template("{{ x - 12 }}", self.hass) # x is undefined duration = "01:00" sensor1 = HistoryStatsSensor("test", "on", bad, None, duration, "time", "Test") sensor1.hass = self.hass sensor2 = HistoryStatsSensor("test", "on", None, bad, duration, "time", "Test") sensor2.hass = self.hass before_update1 = sensor1._period before_update2 = sensor2._period sensor1.update_period() sensor2.update_period() assert before_update1 == sensor1._period assert before_update2 == sensor2._period
def test_wrong_date(self): """Test when start or end value is not a timestamp or a date.""" good = Template("{{ now() }}", self.hass) bad = Template("{{ TEST }}", self.hass) sensor1 = HistoryStatsSensor("test", "on", good, bad, None, "time", "Test") sensor1.hass = self.hass sensor2 = HistoryStatsSensor("test", "on", bad, good, None, "time", "Test") sensor2.hass = self.hass before_update1 = sensor1._period before_update2 = sensor2._period sensor1.update_period() sensor2.update_period() assert before_update1 == sensor1._period assert before_update2 == sensor2._period
def test_period_parsing(self, mock): """Test the conversion from templates to period.""" now = datetime(2019, 1, 1, 23, 30, 0, tzinfo=dt_util.UTC) with patch("homeassistant.util.dt.now", return_value=now): today = Template( "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}", self.hass, ) duration = timedelta(hours=2, minutes=1) sensor1 = HistoryStatsSensor("test", "on", today, None, duration, "time", "test") sensor1.hass = self.hass sensor2 = HistoryStatsSensor("test", "on", None, today, duration, "time", "test") sensor2.hass = self.hass sensor1.update_period() sensor1_start, sensor1_end = sensor1._period sensor2.update_period() sensor2_start, sensor2_end = sensor2._period # Start = 00:00:00 assert sensor1_start.hour == 0 assert sensor1_start.minute == 0 assert sensor1_start.second == 0 # End = 02:01:00 assert sensor1_end.hour == 2 assert sensor1_end.minute == 1 assert sensor1_end.second == 0 # Start = 21:59:00 assert sensor2_start.hour == 21 assert sensor2_start.minute == 59 assert sensor2_start.second == 0 # End = 00:00:00 assert sensor2_end.hour == 0 assert sensor2_end.minute == 0 assert sensor2_end.second == 0