Add post_pending_state attribute to manual alarm_control_panel (#9291)

Add post_pending_state attribute to manual alarm_control_panel
This commit is contained in:
Joe Lu 2017-09-05 11:26:59 -07:00 committed by Martin Hjelmare
parent 418ccc820a
commit 788275da32
2 changed files with 32 additions and 0 deletions

View File

@ -24,6 +24,8 @@ DEFAULT_PENDING_TIME = 60
DEFAULT_TRIGGER_TIME = 120
DEFAULT_DISARM_AFTER_TRIGGER = False
ATTR_POST_PENDING_STATE = 'post_pending_state'
PLATFORM_SCHEMA = vol.Schema({
vol.Required(CONF_PLATFORM): 'manual',
vol.Optional(CONF_NAME, default=DEFAULT_ALARM_NAME): cv.string,
@ -185,3 +187,13 @@ class ManualAlarm(alarm.AlarmControlPanel):
if not check:
_LOGGER.warning("Invalid code given for %s", state)
return check
@property
def device_state_attributes(self):
"""Return the state attributes."""
state_attr = {}
if self.state == STATE_ALARM_PENDING:
state_attr[ATTR_POST_PENDING_STATE] = self._state
return state_attr

View File

@ -72,6 +72,11 @@ class TestAlarmControlPanelManual(unittest.TestCase):
self.assertEqual(STATE_ALARM_PENDING,
self.hass.states.get(entity_id).state)
self.assertTrue(
self.hass.states.is_state_attr(entity_id,
'post_pending_state',
STATE_ALARM_ARMED_HOME))
future = dt_util.utcnow() + timedelta(seconds=1)
with patch(('homeassistant.components.alarm_control_panel.manual.'
'dt_util.utcnow'), return_value=future):
@ -150,6 +155,11 @@ class TestAlarmControlPanelManual(unittest.TestCase):
self.assertEqual(STATE_ALARM_PENDING,
self.hass.states.get(entity_id).state)
self.assertTrue(
self.hass.states.is_state_attr(entity_id,
'post_pending_state',
STATE_ALARM_ARMED_AWAY))
future = dt_util.utcnow() + timedelta(seconds=1)
with patch(('homeassistant.components.alarm_control_panel.manual.'
'dt_util.utcnow'), return_value=future):
@ -228,6 +238,11 @@ class TestAlarmControlPanelManual(unittest.TestCase):
self.assertEqual(STATE_ALARM_PENDING,
self.hass.states.get(entity_id).state)
self.assertTrue(
self.hass.states.is_state_attr(entity_id,
'post_pending_state',
STATE_ALARM_ARMED_NIGHT))
future = dt_util.utcnow() + timedelta(seconds=1)
with patch(('homeassistant.components.alarm_control_panel.manual.'
'dt_util.utcnow'), return_value=future):
@ -314,6 +329,11 @@ class TestAlarmControlPanelManual(unittest.TestCase):
self.assertEqual(STATE_ALARM_PENDING,
self.hass.states.get(entity_id).state)
self.assertTrue(
self.hass.states.is_state_attr(entity_id,
'post_pending_state',
STATE_ALARM_TRIGGERED))
future = dt_util.utcnow() + timedelta(seconds=2)
with patch(('homeassistant.components.alarm_control_panel.manual.'
'dt_util.utcnow'), return_value=future):