mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
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:
parent
418ccc820a
commit
788275da32
@ -24,6 +24,8 @@ DEFAULT_PENDING_TIME = 60
|
|||||||
DEFAULT_TRIGGER_TIME = 120
|
DEFAULT_TRIGGER_TIME = 120
|
||||||
DEFAULT_DISARM_AFTER_TRIGGER = False
|
DEFAULT_DISARM_AFTER_TRIGGER = False
|
||||||
|
|
||||||
|
ATTR_POST_PENDING_STATE = 'post_pending_state'
|
||||||
|
|
||||||
PLATFORM_SCHEMA = vol.Schema({
|
PLATFORM_SCHEMA = vol.Schema({
|
||||||
vol.Required(CONF_PLATFORM): 'manual',
|
vol.Required(CONF_PLATFORM): 'manual',
|
||||||
vol.Optional(CONF_NAME, default=DEFAULT_ALARM_NAME): cv.string,
|
vol.Optional(CONF_NAME, default=DEFAULT_ALARM_NAME): cv.string,
|
||||||
@ -185,3 +187,13 @@ class ManualAlarm(alarm.AlarmControlPanel):
|
|||||||
if not check:
|
if not check:
|
||||||
_LOGGER.warning("Invalid code given for %s", state)
|
_LOGGER.warning("Invalid code given for %s", state)
|
||||||
return check
|
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
|
||||||
|
@ -72,6 +72,11 @@ class TestAlarmControlPanelManual(unittest.TestCase):
|
|||||||
self.assertEqual(STATE_ALARM_PENDING,
|
self.assertEqual(STATE_ALARM_PENDING,
|
||||||
self.hass.states.get(entity_id).state)
|
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)
|
future = dt_util.utcnow() + timedelta(seconds=1)
|
||||||
with patch(('homeassistant.components.alarm_control_panel.manual.'
|
with patch(('homeassistant.components.alarm_control_panel.manual.'
|
||||||
'dt_util.utcnow'), return_value=future):
|
'dt_util.utcnow'), return_value=future):
|
||||||
@ -150,6 +155,11 @@ class TestAlarmControlPanelManual(unittest.TestCase):
|
|||||||
self.assertEqual(STATE_ALARM_PENDING,
|
self.assertEqual(STATE_ALARM_PENDING,
|
||||||
self.hass.states.get(entity_id).state)
|
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)
|
future = dt_util.utcnow() + timedelta(seconds=1)
|
||||||
with patch(('homeassistant.components.alarm_control_panel.manual.'
|
with patch(('homeassistant.components.alarm_control_panel.manual.'
|
||||||
'dt_util.utcnow'), return_value=future):
|
'dt_util.utcnow'), return_value=future):
|
||||||
@ -228,6 +238,11 @@ class TestAlarmControlPanelManual(unittest.TestCase):
|
|||||||
self.assertEqual(STATE_ALARM_PENDING,
|
self.assertEqual(STATE_ALARM_PENDING,
|
||||||
self.hass.states.get(entity_id).state)
|
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)
|
future = dt_util.utcnow() + timedelta(seconds=1)
|
||||||
with patch(('homeassistant.components.alarm_control_panel.manual.'
|
with patch(('homeassistant.components.alarm_control_panel.manual.'
|
||||||
'dt_util.utcnow'), return_value=future):
|
'dt_util.utcnow'), return_value=future):
|
||||||
@ -314,6 +329,11 @@ class TestAlarmControlPanelManual(unittest.TestCase):
|
|||||||
self.assertEqual(STATE_ALARM_PENDING,
|
self.assertEqual(STATE_ALARM_PENDING,
|
||||||
self.hass.states.get(entity_id).state)
|
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)
|
future = dt_util.utcnow() + timedelta(seconds=2)
|
||||||
with patch(('homeassistant.components.alarm_control_panel.manual.'
|
with patch(('homeassistant.components.alarm_control_panel.manual.'
|
||||||
'dt_util.utcnow'), return_value=future):
|
'dt_util.utcnow'), return_value=future):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user