Wait_template - support for 'trigger.entity_id' and data_template values (#9807)
* *Added support for use of 'trigger.entity_id' and service->data_template->script in wait_template * * Fixed style violations * * Fixed regular expression (_RE_GET_POSSIBLE_ENTITIES) * * combined 'extract_entities' and 'extract_entities_with_variables' * fixed regular expression * * Added first test for extract_entities_with_variables * * Added Unittests (tests/helpers/test_template.py test_extract_entities_with_variables) * * Added Unittests (tests/helpers/test_script.py test_wait_template_variables) * * Added Unittests (tests/components/automation/test_template.py test_wait_template_with_trigger) * * Added Unittests (tests/components/automation/test_state.py test_wait_template_with_trigger) * * Added Unittests (tests/components/automation/test_numeric_state.py test_wait_template_with_trigger) * * Fixed style violations * * Fixed style violations * * Fixed style violations * * Fixed style violations * * Fixed style violations * * Fixed style violations * * Updated regular expression and delete whitespaces
This commit is contained in:
parent
c33b179fb8
commit
be5c0b2d92
8 changed files with 192 additions and 10 deletions
|
@ -704,3 +704,37 @@ class TestAutomationNumericState(unittest.TestCase):
|
|||
fire_time_changed(self.hass, dt_util.utcnow() + timedelta(seconds=10))
|
||||
self.hass.block_till_done()
|
||||
self.assertEqual(1, len(self.calls))
|
||||
|
||||
def test_wait_template_with_trigger(self):
|
||||
"""Test using wait template with 'trigger.entity_id'."""
|
||||
assert setup_component(self.hass, automation.DOMAIN, {
|
||||
automation.DOMAIN: {
|
||||
'trigger': {
|
||||
'platform': 'numeric_state',
|
||||
'entity_id': 'test.entity',
|
||||
'above': 10,
|
||||
},
|
||||
'action': [
|
||||
{'wait_template':
|
||||
"{{ states(trigger.entity_id) | int < 10 }}"},
|
||||
{'service': 'test.automation',
|
||||
'data_template': {
|
||||
'some':
|
||||
'{{ trigger.%s }}' % '}} - {{ trigger.'.join((
|
||||
'platform', 'entity_id', 'to_state.state'))
|
||||
}}
|
||||
],
|
||||
}
|
||||
})
|
||||
|
||||
self.hass.block_till_done()
|
||||
self.calls = []
|
||||
|
||||
self.hass.states.set('test.entity', '12')
|
||||
self.hass.block_till_done()
|
||||
self.hass.states.set('test.entity', '8')
|
||||
self.hass.block_till_done()
|
||||
self.assertEqual(1, len(self.calls))
|
||||
self.assertEqual(
|
||||
'numeric_state - test.entity - 12',
|
||||
self.calls[0].data['some'])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue