46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
"""Test the Snips component."""
|
|
import asyncio
|
|
|
|
from homeassistant.bootstrap import async_setup_component
|
|
from tests.common import async_fire_mqtt_message, async_mock_intent
|
|
|
|
EXAMPLE_MSG = """
|
|
{
|
|
"input": "turn the lights green",
|
|
"intent": {
|
|
"intentName": "Lights",
|
|
"probability": 1
|
|
},
|
|
"slots": [
|
|
{
|
|
"slotName": "light_color",
|
|
"value": {
|
|
"kind": "Custom",
|
|
"value": "green"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
"""
|
|
|
|
|
|
@asyncio.coroutine
|
|
def test_snips_call_action(hass, mqtt_mock):
|
|
"""Test calling action via Snips."""
|
|
result = yield from async_setup_component(hass, "snips", {
|
|
"snips": {},
|
|
})
|
|
assert result
|
|
|
|
intents = async_mock_intent(hass, 'Lights')
|
|
|
|
async_fire_mqtt_message(hass, 'hermes/nlu/intentParsed',
|
|
EXAMPLE_MSG)
|
|
yield from hass.async_block_till_done()
|
|
assert len(intents) == 1
|
|
intent = intents[0]
|
|
assert intent.platform == 'snips'
|
|
assert intent.intent_type == 'Lights'
|
|
assert intent.slots == {'light_color': {'value': 'green'}}
|
|
assert intent.text_input == 'turn the lights green'
|