add date_time_iso to time_date sensor (#22199)

* add date_time_iso to time_date sensor

* hound fixes

* lint fixes
This commit is contained in:
uchagani 2019-03-21 03:55:30 -04:00 committed by Fabian Affolter
parent 88be786e82
commit 21871b3d6b
2 changed files with 10 additions and 0 deletions

View File

@ -25,6 +25,7 @@ OPTION_TYPES = {
'time': 'Time', 'time': 'Time',
'date': 'Date', 'date': 'Date',
'date_time': 'Date & Time', 'date_time': 'Date & Time',
'date_time_iso': 'Date & Time ISO',
'time_date': 'Time & Date', 'time_date': 'Time & Date',
'beat': 'Internet Time', 'beat': 'Internet Time',
'time_utc': 'Time (UTC)', 'time_utc': 'Time (UTC)',
@ -123,6 +124,9 @@ class TimeDateSensor(Entity):
self._state = time_utc self._state = time_utc
elif self.type == 'beat': elif self.type == 'beat':
self._state = '@{0:03d}'.format(beat) self._state = '@{0:03d}'.format(beat)
elif self.type == 'date_time_iso':
self._state = dt_util.parse_datetime(
'{} {}'.format(date, time)).isoformat()
@callback @callback
def point_in_time_listener(self, time_date): def point_in_time_listener(self, time_date):

View File

@ -71,6 +71,10 @@ class TestTimeDateSensor(unittest.TestCase):
device._update_internal_state(now) device._update_internal_state(now)
assert device.state == "@079" 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"
# pylint: disable=no-member # pylint: disable=no-member
def test_timezone_intervals(self): def test_timezone_intervals(self):
"""Test date sensor behavior in a timezone besides UTC.""" """Test date sensor behavior in a timezone besides UTC."""
@ -114,3 +118,5 @@ class TestTimeDateSensor(unittest.TestCase):
assert device.icon == "mdi:calendar" assert device.icon == "mdi:calendar"
device = time_date.TimeDateSensor(self.hass, 'date_time') device = time_date.TimeDateSensor(self.hass, 'date_time')
assert device.icon == "mdi:calendar-clock" assert device.icon == "mdi:calendar-clock"
device = time_date.TimeDateSensor(self.hass, 'date_time_iso')
assert device.icon == "mdi:calendar-clock"