mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
This commit is contained in:
parent
713f7fa2a1
commit
185d838803
@ -101,7 +101,9 @@ class ManualAlarm(alarm.AlarmControlPanel):
|
|||||||
self._trigger_time) < dt_util.utcnow():
|
self._trigger_time) < dt_util.utcnow():
|
||||||
if self._disarm_after_trigger:
|
if self._disarm_after_trigger:
|
||||||
return STATE_ALARM_DISARMED
|
return STATE_ALARM_DISARMED
|
||||||
return self._pre_trigger_state
|
else:
|
||||||
|
self._state = self._pre_trigger_state
|
||||||
|
return self._state
|
||||||
|
|
||||||
return self._state
|
return self._state
|
||||||
|
|
||||||
|
@ -364,6 +364,97 @@ class TestAlarmControlPanelManual(unittest.TestCase):
|
|||||||
self.assertEqual(STATE_ALARM_DISARMED,
|
self.assertEqual(STATE_ALARM_DISARMED,
|
||||||
self.hass.states.get(entity_id).state)
|
self.hass.states.get(entity_id).state)
|
||||||
|
|
||||||
|
def test_trigger_with_no_disarm_after_trigger(self):
|
||||||
|
"""Test disarm after trigger."""
|
||||||
|
self.assertTrue(setup_component(
|
||||||
|
self.hass, alarm_control_panel.DOMAIN,
|
||||||
|
{'alarm_control_panel': {
|
||||||
|
'platform': 'manual',
|
||||||
|
'name': 'test',
|
||||||
|
'trigger_time': 5,
|
||||||
|
'pending_time': 0,
|
||||||
|
'disarm_after_trigger': False
|
||||||
|
}}))
|
||||||
|
|
||||||
|
entity_id = 'alarm_control_panel.test'
|
||||||
|
|
||||||
|
self.assertEqual(STATE_ALARM_DISARMED,
|
||||||
|
self.hass.states.get(entity_id).state)
|
||||||
|
|
||||||
|
alarm_control_panel.alarm_arm_away(self.hass, CODE, entity_id)
|
||||||
|
self.hass.block_till_done()
|
||||||
|
|
||||||
|
self.assertEqual(STATE_ALARM_ARMED_AWAY,
|
||||||
|
self.hass.states.get(entity_id).state)
|
||||||
|
|
||||||
|
alarm_control_panel.alarm_trigger(self.hass, entity_id=entity_id)
|
||||||
|
self.hass.block_till_done()
|
||||||
|
|
||||||
|
self.assertEqual(STATE_ALARM_TRIGGERED,
|
||||||
|
self.hass.states.get(entity_id).state)
|
||||||
|
|
||||||
|
future = dt_util.utcnow() + timedelta(seconds=5)
|
||||||
|
with patch(('homeassistant.components.alarm_control_panel.manual.'
|
||||||
|
'dt_util.utcnow'), return_value=future):
|
||||||
|
fire_time_changed(self.hass, future)
|
||||||
|
self.hass.block_till_done()
|
||||||
|
|
||||||
|
self.assertEqual(STATE_ALARM_ARMED_AWAY,
|
||||||
|
self.hass.states.get(entity_id).state)
|
||||||
|
|
||||||
|
def test_back_to_back_trigger_with_no_disarm_after_trigger(self):
|
||||||
|
"""Test disarm after trigger."""
|
||||||
|
self.assertTrue(setup_component(
|
||||||
|
self.hass, alarm_control_panel.DOMAIN,
|
||||||
|
{'alarm_control_panel': {
|
||||||
|
'platform': 'manual',
|
||||||
|
'name': 'test',
|
||||||
|
'trigger_time': 5,
|
||||||
|
'pending_time': 0,
|
||||||
|
'disarm_after_trigger': False
|
||||||
|
}}))
|
||||||
|
|
||||||
|
entity_id = 'alarm_control_panel.test'
|
||||||
|
|
||||||
|
self.assertEqual(STATE_ALARM_DISARMED,
|
||||||
|
self.hass.states.get(entity_id).state)
|
||||||
|
|
||||||
|
alarm_control_panel.alarm_arm_away(self.hass, CODE, entity_id)
|
||||||
|
self.hass.block_till_done()
|
||||||
|
|
||||||
|
self.assertEqual(STATE_ALARM_ARMED_AWAY,
|
||||||
|
self.hass.states.get(entity_id).state)
|
||||||
|
|
||||||
|
alarm_control_panel.alarm_trigger(self.hass, entity_id=entity_id)
|
||||||
|
self.hass.block_till_done()
|
||||||
|
|
||||||
|
self.assertEqual(STATE_ALARM_TRIGGERED,
|
||||||
|
self.hass.states.get(entity_id).state)
|
||||||
|
|
||||||
|
future = dt_util.utcnow() + timedelta(seconds=5)
|
||||||
|
with patch(('homeassistant.components.alarm_control_panel.manual.'
|
||||||
|
'dt_util.utcnow'), return_value=future):
|
||||||
|
fire_time_changed(self.hass, future)
|
||||||
|
self.hass.block_till_done()
|
||||||
|
|
||||||
|
self.assertEqual(STATE_ALARM_ARMED_AWAY,
|
||||||
|
self.hass.states.get(entity_id).state)
|
||||||
|
|
||||||
|
alarm_control_panel.alarm_trigger(self.hass, entity_id=entity_id)
|
||||||
|
self.hass.block_till_done()
|
||||||
|
|
||||||
|
self.assertEqual(STATE_ALARM_TRIGGERED,
|
||||||
|
self.hass.states.get(entity_id).state)
|
||||||
|
|
||||||
|
future = dt_util.utcnow() + timedelta(seconds=5)
|
||||||
|
with patch(('homeassistant.components.alarm_control_panel.manual.'
|
||||||
|
'dt_util.utcnow'), return_value=future):
|
||||||
|
fire_time_changed(self.hass, future)
|
||||||
|
self.hass.block_till_done()
|
||||||
|
|
||||||
|
self.assertEqual(STATE_ALARM_ARMED_AWAY,
|
||||||
|
self.hass.states.get(entity_id).state)
|
||||||
|
|
||||||
def test_disarm_while_pending_trigger(self):
|
def test_disarm_while_pending_trigger(self):
|
||||||
"""Test disarming while pending state."""
|
"""Test disarming while pending state."""
|
||||||
self.assertTrue(setup_component(
|
self.assertTrue(setup_component(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user