def test_jewish_calendar_sensor_holyness(self): """Test Jewish calendar sensor date output in hebrew.""" test_time = dt(2018, 9, 10) sensor = JewishCalSensor( name='test', language='hebrew', sensor_type='holyness', latitude=self.TEST_LATITUDE, longitude=self.TEST_LONGITUDE, diaspora=False) with patch('homeassistant.util.dt.now', return_value=test_time): run_coroutine_threadsafe( sensor.async_update(), self.hass.loop).result() self.assertEqual(sensor.state, 1)
def test_jewish_calendar_sensor_date_output(self): """Test Jewish calendar sensor date output.""" test_time = dt(2018, 9, 3) sensor = JewishCalSensor(name='test', language='english', sensor_type='date', latitude=self.TEST_LATITUDE, longitude=self.TEST_LONGITUDE, timezone="UTC", diaspora=False) with patch('homeassistant.util.dt.now', return_value=test_time): run_coroutine_threadsafe(sensor.async_update(), self.hass.loop).result() self.assertEqual(sensor.state, '23 Elul 5778')
def test_jewish_calendar_sensor_torah_reading_weekday(self): """Test the sensor showing torah reading also on weekdays.""" test_time = dt(2018, 10, 14) sensor = JewishCalSensor(name='test', language='hebrew', sensor_type='weekly_portion', latitude=self.TEST_LATITUDE, longitude=self.TEST_LONGITUDE, timezone="Asia/Jerusalem", diaspora=False) with patch('homeassistant.util.dt.now', return_value=test_time): run_coroutine_threadsafe(sensor.async_update(), self.hass.loop).result() self.assertEqual(sensor.state, "פרשת לך לך")
def test_jewish_calendar_sensor_first_stars_jerusalem(self): """Test Jewish calendar sensor first stars time in Jerusalem, IL.""" test_time = dt(2018, 9, 8) sensor = JewishCalSensor(name='test', language='hebrew', sensor_type='first_stars', latitude=self.TEST_LATITUDE, longitude=self.TEST_LONGITUDE, timezone="Asia/Jerusalem", diaspora=False) with patch('homeassistant.util.dt.now', return_value=test_time): run_coroutine_threadsafe(sensor.async_update(), self.hass.loop).result() self.assertEqual(sensor.state, time(19, 21))
def test_jewish_calendar_sensor_first_stars_ny(self): """Test Jewish calendar sensor first stars time in NY, US.""" test_time = dt(2018, 9, 8) sensor = JewishCalSensor(name='test', language='hebrew', sensor_type='first_stars', latitude=40.7128, longitude=-74.0060, timezone=get_time_zone("America/New_York"), diaspora=False) with patch('homeassistant.util.dt.now', return_value=test_time): run_coroutine_threadsafe(sensor.async_update(), self.hass.loop).result() self.assertEqual(sensor.state, time(19, 48))
def test_jewish_calendar_sensor_torah_reading(self): """Test Jewish calendar sensor torah reading in hebrew.""" test_time = dt(2018, 9, 8) sensor = JewishCalSensor(name='test', language='hebrew', sensor_type='weekly_portion', latitude=self.TEST_LATITUDE, longitude=self.TEST_LONGITUDE, timezone="UTC", diaspora=False) with patch('homeassistant.util.dt.now', return_value=test_time): run_coroutine_threadsafe(sensor.async_update(), self.hass.loop).result() self.assertEqual(sensor.state, "פרשת נצבים")
def test_jewish_calendar_sensor(self, time, tzname, latitude, longitude, language, sensor, diaspora, result): """Test Jewish calendar sensor output.""" tz = get_time_zone(tzname) set_default_time_zone(tz) test_time = tz.localize(time) self.hass.config.latitude = latitude self.hass.config.longitude = longitude sensor = JewishCalSensor( name='test', language=language, sensor_type=sensor, latitude=latitude, longitude=longitude, timezone=tz, diaspora=diaspora) sensor.hass = self.hass with patch('homeassistant.util.dt.now', return_value=test_time): run_coroutine_threadsafe( sensor.async_update(), self.hass.loop).result() assert sensor.state == result
def test_jewish_calendar_sensor(self, time, tzname, latitude, longitude, language, sensor, diaspora, result): """Test Jewish calendar sensor output.""" tz = get_time_zone(tzname) set_default_time_zone(tz) test_time = tz.localize(time) self.hass.config.latitude = latitude self.hass.config.longitude = longitude sensor = JewishCalSensor(name='test', language=language, sensor_type=sensor, latitude=latitude, longitude=longitude, timezone=tz, diaspora=diaspora) sensor.hass = self.hass with patch('homeassistant.util.dt.now', return_value=test_time): run_coroutine_threadsafe(sensor.async_update(), self.hass.loop).result() assert sensor.state == result
def test_shabbat_times_sensor(self, now, candle_lighting, havdalah, diaspora, tzname, latitude, longitude, result): """Test sensor output for upcoming shabbat/yomtov times.""" time_zone = get_time_zone(tzname) set_default_time_zone(time_zone) test_time = time_zone.localize(now) for sensor_type, value in result.items(): if isinstance(value, dt): result[sensor_type] = time_zone.localize(value) self.hass.config.latitude = latitude self.hass.config.longitude = longitude if ('upcoming_shabbat_candle_lighting' in result and 'upcoming_candle_lighting' not in result): result['upcoming_candle_lighting'] = \ result['upcoming_shabbat_candle_lighting'] if ('upcoming_shabbat_havdalah' in result and 'upcoming_havdalah' not in result): result['upcoming_havdalah'] = result['upcoming_shabbat_havdalah'] for sensor_type, result_value in result.items(): language = 'english' if sensor_type.startswith('hebrew_'): language = 'hebrew' sensor_type = sensor_type.replace('hebrew_', '') sensor = JewishCalSensor(name='test', language=language, sensor_type=sensor_type, latitude=latitude, longitude=longitude, timezone=time_zone, diaspora=diaspora, havdalah_offset=havdalah, candle_lighting_offset=candle_lighting) sensor.hass = self.hass with patch('homeassistant.util.dt.now', return_value=test_time): run_coroutine_threadsafe(sensor.async_update(), self.hass.loop).result() assert sensor.state == result_value, "Value for {}".format( sensor_type)
def test_issur_melacha_sensor(self, now, candle_lighting, havdalah, diaspora, tzname, latitude, longitude, result): """Test Issur Melacha sensor output.""" time_zone = get_time_zone(tzname) set_default_time_zone(time_zone) test_time = time_zone.localize(now) self.hass.config.latitude = latitude self.hass.config.longitude = longitude sensor = JewishCalSensor( name='test', language='english', sensor_type='issur_melacha_in_effect', latitude=latitude, longitude=longitude, timezone=time_zone, diaspora=diaspora, havdalah_offset=havdalah, candle_lighting_offset=candle_lighting) sensor.hass = self.hass with patch('homeassistant.util.dt.now', return_value=test_time): run_coroutine_threadsafe( sensor.async_update(), self.hass.loop).result() assert sensor.state == result
def test_shabbat_times_sensor(self, now, candle_lighting, havdalah, diaspora, tzname, latitude, longitude, result): """Test sensor output for upcoming shabbat/yomtov times.""" time_zone = get_time_zone(tzname) set_default_time_zone(time_zone) test_time = time_zone.localize(now) for sensor_type, value in result.items(): if isinstance(value, dt): result[sensor_type] = time_zone.localize(value) self.hass.config.latitude = latitude self.hass.config.longitude = longitude if ('upcoming_shabbat_candle_lighting' in result and 'upcoming_candle_lighting' not in result): result['upcoming_candle_lighting'] = \ result['upcoming_shabbat_candle_lighting'] if ('upcoming_shabbat_havdalah' in result and 'upcoming_havdalah' not in result): result['upcoming_havdalah'] = result['upcoming_shabbat_havdalah'] for sensor_type, result_value in result.items(): language = 'english' if sensor_type.startswith('hebrew_'): language = 'hebrew' sensor_type = sensor_type.replace('hebrew_', '') sensor = JewishCalSensor( name='test', language=language, sensor_type=sensor_type, latitude=latitude, longitude=longitude, timezone=time_zone, diaspora=diaspora, havdalah_offset=havdalah, candle_lighting_offset=candle_lighting) sensor.hass = self.hass with patch('homeassistant.util.dt.now', return_value=test_time): run_coroutine_threadsafe( sensor.async_update(), self.hass.loop).result() assert sensor.state == result_value, "Value for {}".format( sensor_type)
def test_issur_melacha_sensor(self, now, candle_lighting, havdalah, diaspora, tzname, latitude, longitude, result): """Test Issur Melacha sensor output.""" time_zone = get_time_zone(tzname) set_default_time_zone(time_zone) test_time = time_zone.localize(now) self.hass.config.latitude = latitude self.hass.config.longitude = longitude sensor = JewishCalSensor(name='test', language='english', sensor_type='issur_melacha_in_effect', latitude=latitude, longitude=longitude, timezone=time_zone, diaspora=diaspora, havdalah_offset=havdalah, candle_lighting_offset=candle_lighting) sensor.hass = self.hass with patch('homeassistant.util.dt.now', return_value=test_time): run_coroutine_threadsafe(sensor.async_update(), self.hass.loop).result() assert sensor.state == result