add script shortcut for activating scenes (#27223)

* add script shortcut for activating scenes

use `- scene: scene.<scene name>` in a script to activate a scene

* Update validation
This commit is contained in:
Matthew Donoughe 2019-10-05 16:30:43 -04:00 committed by Paulus Schoutsen
parent 43d1413050
commit d16edb3ef0
3 changed files with 54 additions and 0 deletions

View file

@ -9,7 +9,9 @@ import jinja2
import voluptuous as vol
import pytest
import homeassistant.components.scene as scene
from homeassistant import exceptions
from homeassistant.const import ATTR_ENTITY_ID, SERVICE_TURN_ON
from homeassistant.core import Context, callback
# Otherwise can't test just this file (import order issue)
@ -120,6 +122,31 @@ async def test_calling_service(hass):
assert calls[0].data.get("hello") == "world"
async def test_activating_scene(hass):
"""Test the activation of a scene."""
calls = []
context = Context()
@callback
def record_call(service):
"""Add recorded event to set."""
calls.append(service)
hass.services.async_register(scene.DOMAIN, SERVICE_TURN_ON, record_call)
hass.async_add_job(
ft.partial(
script.call_from_config, hass, {"scene": "scene.hello"}, context=context
)
)
await hass.async_block_till_done()
assert len(calls) == 1
assert calls[0].context is context
assert calls[0].data.get(ATTR_ENTITY_ID) == "scene.hello"
async def test_calling_service_template(hass):
"""Test the calling of a service."""
calls = []