mirror of
https://github.com/home-assistant/core.git
synced 2026-04-20 08:29:39 +02:00
Add required features to vacuum intents (#151581)
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import intent
|
||||
|
||||
from . import DOMAIN, SERVICE_RETURN_TO_BASE, SERVICE_START
|
||||
from . import DOMAIN, SERVICE_RETURN_TO_BASE, SERVICE_START, VacuumEntityFeature
|
||||
|
||||
INTENT_VACUUM_START = "HassVacuumStart"
|
||||
INTENT_VACUUM_RETURN_TO_BASE = "HassVacuumReturnToBase"
|
||||
@@ -20,6 +20,7 @@ async def async_setup_intents(hass: HomeAssistant) -> None:
|
||||
description="Starts a vacuum",
|
||||
required_domains={DOMAIN},
|
||||
platforms={DOMAIN},
|
||||
required_features=VacuumEntityFeature.START,
|
||||
),
|
||||
)
|
||||
intent.async_register(
|
||||
@@ -31,5 +32,6 @@ async def async_setup_intents(hass: HomeAssistant) -> None:
|
||||
description="Returns a vacuum to base",
|
||||
required_domains={DOMAIN},
|
||||
platforms={DOMAIN},
|
||||
required_features=VacuumEntityFeature.RETURN_HOME,
|
||||
),
|
||||
)
|
||||
|
||||
@@ -212,7 +212,14 @@ async def test_vacuum_intents(
|
||||
await vaccum_intent.async_setup_intents(hass)
|
||||
|
||||
entity_id = f"{vacuum.DOMAIN}.rover"
|
||||
hass.states.async_set(entity_id, STATE_CLOSED)
|
||||
hass.states.async_set(
|
||||
entity_id,
|
||||
STATE_CLOSED,
|
||||
{
|
||||
ATTR_SUPPORTED_FEATURES: vacuum.VacuumEntityFeature.START
|
||||
| vacuum.VacuumEntityFeature.RETURN_HOME
|
||||
},
|
||||
)
|
||||
async_expose_entity(hass, conversation.DOMAIN, entity_id, True)
|
||||
|
||||
# start
|
||||
|
||||
@@ -4,9 +4,10 @@ from homeassistant.components.vacuum import (
|
||||
DOMAIN,
|
||||
SERVICE_RETURN_TO_BASE,
|
||||
SERVICE_START,
|
||||
VacuumEntityFeature,
|
||||
intent as vacuum_intent,
|
||||
)
|
||||
from homeassistant.const import STATE_IDLE
|
||||
from homeassistant.const import ATTR_SUPPORTED_FEATURES, STATE_IDLE
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import intent
|
||||
|
||||
@@ -18,7 +19,9 @@ async def test_start_vacuum_intent(hass: HomeAssistant) -> None:
|
||||
await vacuum_intent.async_setup_intents(hass)
|
||||
|
||||
entity_id = f"{DOMAIN}.test_vacuum"
|
||||
hass.states.async_set(entity_id, STATE_IDLE)
|
||||
hass.states.async_set(
|
||||
entity_id, STATE_IDLE, {ATTR_SUPPORTED_FEATURES: VacuumEntityFeature.START}
|
||||
)
|
||||
calls = async_mock_service(hass, DOMAIN, SERVICE_START)
|
||||
|
||||
response = await intent.async_handle(
|
||||
@@ -42,7 +45,9 @@ async def test_start_vacuum_without_name(hass: HomeAssistant) -> None:
|
||||
await vacuum_intent.async_setup_intents(hass)
|
||||
|
||||
entity_id = f"{DOMAIN}.test_vacuum"
|
||||
hass.states.async_set(entity_id, STATE_IDLE)
|
||||
hass.states.async_set(
|
||||
entity_id, STATE_IDLE, {ATTR_SUPPORTED_FEATURES: VacuumEntityFeature.START}
|
||||
)
|
||||
calls = async_mock_service(hass, DOMAIN, SERVICE_START)
|
||||
|
||||
response = await intent.async_handle(
|
||||
@@ -63,7 +68,11 @@ async def test_stop_vacuum_intent(hass: HomeAssistant) -> None:
|
||||
await vacuum_intent.async_setup_intents(hass)
|
||||
|
||||
entity_id = f"{DOMAIN}.test_vacuum"
|
||||
hass.states.async_set(entity_id, STATE_IDLE)
|
||||
hass.states.async_set(
|
||||
entity_id,
|
||||
STATE_IDLE,
|
||||
{ATTR_SUPPORTED_FEATURES: VacuumEntityFeature.RETURN_HOME},
|
||||
)
|
||||
calls = async_mock_service(hass, DOMAIN, SERVICE_RETURN_TO_BASE)
|
||||
|
||||
response = await intent.async_handle(
|
||||
@@ -87,7 +96,11 @@ async def test_stop_vacuum_without_name(hass: HomeAssistant) -> None:
|
||||
await vacuum_intent.async_setup_intents(hass)
|
||||
|
||||
entity_id = f"{DOMAIN}.test_vacuum"
|
||||
hass.states.async_set(entity_id, STATE_IDLE)
|
||||
hass.states.async_set(
|
||||
entity_id,
|
||||
STATE_IDLE,
|
||||
{ATTR_SUPPORTED_FEATURES: VacuumEntityFeature.RETURN_HOME},
|
||||
)
|
||||
calls = async_mock_service(hass, DOMAIN, SERVICE_RETURN_TO_BASE)
|
||||
|
||||
response = await intent.async_handle(
|
||||
|
||||
Reference in New Issue
Block a user