From 3909906823472351c09bd476cfff98ee82de84bf Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Tue, 2 Sep 2025 11:02:38 -0500 Subject: [PATCH] Add required features for mowing intents (#151580) --- homeassistant/components/lawn_mower/intent.py | 4 ++- tests/components/lawn_mower/test_intent.py | 26 ++++++++++++++++--- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/lawn_mower/intent.py b/homeassistant/components/lawn_mower/intent.py index ca06ed2e2389..a0176446b770 100644 --- a/homeassistant/components/lawn_mower/intent.py +++ b/homeassistant/components/lawn_mower/intent.py @@ -3,7 +3,7 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers import intent -from . import DOMAIN, SERVICE_DOCK, SERVICE_START_MOWING +from . import DOMAIN, SERVICE_DOCK, SERVICE_START_MOWING, LawnMowerEntityFeature INTENT_LANW_MOWER_START_MOWING = "HassLawnMowerStartMowing" INTENT_LANW_MOWER_DOCK = "HassLawnMowerDock" @@ -20,6 +20,7 @@ async def async_setup_intents(hass: HomeAssistant) -> None: description="Starts a lawn mower", required_domains={DOMAIN}, platforms={DOMAIN}, + required_features=LawnMowerEntityFeature.START_MOWING, ), ) intent.async_register( @@ -31,5 +32,6 @@ async def async_setup_intents(hass: HomeAssistant) -> None: description="Sends a lawn mower to dock", required_domains={DOMAIN}, platforms={DOMAIN}, + required_features=LawnMowerEntityFeature.DOCK, ), ) diff --git a/tests/components/lawn_mower/test_intent.py b/tests/components/lawn_mower/test_intent.py index f673833d7567..81f64c3cffee 100644 --- a/tests/components/lawn_mower/test_intent.py +++ b/tests/components/lawn_mower/test_intent.py @@ -5,8 +5,10 @@ from homeassistant.components.lawn_mower import ( SERVICE_DOCK, SERVICE_START_MOWING, LawnMowerActivity, + LawnMowerEntityFeature, intent as lawn_mower_intent, ) +from homeassistant.const import ATTR_SUPPORTED_FEATURES from homeassistant.core import HomeAssistant from homeassistant.helpers import intent @@ -18,7 +20,11 @@ async def test_start_lawn_mower_intent(hass: HomeAssistant) -> None: await lawn_mower_intent.async_setup_intents(hass) entity_id = f"{DOMAIN}.test_lawn_mower" - hass.states.async_set(entity_id, LawnMowerActivity.DOCKED) + hass.states.async_set( + entity_id, + LawnMowerActivity.DOCKED, + {ATTR_SUPPORTED_FEATURES: LawnMowerEntityFeature.START_MOWING}, + ) calls = async_mock_service(hass, DOMAIN, SERVICE_START_MOWING) response = await intent.async_handle( @@ -42,7 +48,11 @@ async def test_start_lawn_mower_without_name(hass: HomeAssistant) -> None: await lawn_mower_intent.async_setup_intents(hass) entity_id = f"{DOMAIN}.test_lawn_mower" - hass.states.async_set(entity_id, LawnMowerActivity.DOCKED) + hass.states.async_set( + entity_id, + LawnMowerActivity.DOCKED, + {ATTR_SUPPORTED_FEATURES: LawnMowerEntityFeature.START_MOWING}, + ) calls = async_mock_service(hass, DOMAIN, SERVICE_START_MOWING) response = await intent.async_handle( @@ -63,7 +73,11 @@ async def test_stop_lawn_mower_intent(hass: HomeAssistant) -> None: await lawn_mower_intent.async_setup_intents(hass) entity_id = f"{DOMAIN}.test_lawn_mower" - hass.states.async_set(entity_id, LawnMowerActivity.MOWING) + hass.states.async_set( + entity_id, + LawnMowerActivity.MOWING, + {ATTR_SUPPORTED_FEATURES: LawnMowerEntityFeature.DOCK}, + ) calls = async_mock_service(hass, DOMAIN, SERVICE_DOCK) response = await intent.async_handle( @@ -87,7 +101,11 @@ async def test_stop_lawn_mower_without_name(hass: HomeAssistant) -> None: await lawn_mower_intent.async_setup_intents(hass) entity_id = f"{DOMAIN}.test_lawn_mower" - hass.states.async_set(entity_id, LawnMowerActivity.MOWING) + hass.states.async_set( + entity_id, + LawnMowerActivity.MOWING, + {ATTR_SUPPORTED_FEATURES: LawnMowerEntityFeature.DOCK}, + ) calls = async_mock_service(hass, DOMAIN, SERVICE_DOCK) response = await intent.async_handle(