46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
|
"""Test intent_script component."""
|
||
|
import asyncio
|
||
|
|
||
|
from homeassistant.bootstrap import async_setup_component
|
||
|
from homeassistant.helpers import intent
|
||
|
|
||
|
from tests.common import async_mock_service
|
||
|
|
||
|
|
||
|
@asyncio.coroutine
|
||
|
def test_intent_script(hass):
|
||
|
"""Test intent scripts work."""
|
||
|
calls = async_mock_service(hass, 'test', 'service')
|
||
|
|
||
|
yield from async_setup_component(hass, 'intent_script', {
|
||
|
'intent_script': {
|
||
|
'HelloWorld': {
|
||
|
'action': {
|
||
|
'service': 'test.service',
|
||
|
'data_template': {
|
||
|
'hello': '{{ name }}'
|
||
|
}
|
||
|
},
|
||
|
'card': {
|
||
|
'title': 'Hello {{ name }}',
|
||
|
'content': 'Content for {{ name }}',
|
||
|
},
|
||
|
'speech': {
|
||
|
'text': 'Good morning {{ name }}'
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
|
||
|
response = yield from intent.async_handle(
|
||
|
hass, 'test', 'HelloWorld', {'name': {'value': 'Paulus'}}
|
||
|
)
|
||
|
|
||
|
assert len(calls) == 1
|
||
|
assert calls[0].data['hello'] == 'Paulus'
|
||
|
|
||
|
assert response.speech['plain']['speech'] == 'Good morning Paulus'
|
||
|
|
||
|
assert response.card['simple']['title'] == 'Hello Paulus'
|
||
|
assert response.card['simple']['content'] == 'Content for Paulus'
|