Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix Assist skipping entities that are hidden or have entity category (#…
…87096) Skipping entities that are hidden or have entity category
- Loading branch information
Showing
2 changed files
with
52 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
"""Test for the default agent.""" | ||
import pytest | ||
|
||
from homeassistant.components import conversation | ||
from homeassistant.core import DOMAIN as HASS_DOMAIN, Context | ||
from homeassistant.helpers import entity, entity_registry, intent | ||
from homeassistant.setup import async_setup_component | ||
|
||
from tests.common import async_mock_service | ||
|
||
|
||
@pytest.fixture | ||
async def init_components(hass): | ||
"""Initialize relevant components with empty configs.""" | ||
assert await async_setup_component(hass, "homeassistant", {}) | ||
assert await async_setup_component(hass, "conversation", {}) | ||
assert await async_setup_component(hass, "intent", {}) | ||
|
||
|
||
@pytest.mark.parametrize( | ||
"er_kwargs", | ||
[ | ||
{"hidden_by": entity_registry.RegistryEntryHider.USER}, | ||
{"hidden_by": entity_registry.RegistryEntryHider.INTEGRATION}, | ||
{"entity_category": entity.EntityCategory.CONFIG}, | ||
{"entity_category": entity.EntityCategory.DIAGNOSTIC}, | ||
], | ||
) | ||
async def test_hidden_entities_skipped(hass, init_components, er_kwargs): | ||
"""Test we skip hidden entities.""" | ||
|
||
er = entity_registry.async_get(hass) | ||
er.async_get_or_create( | ||
"light", "demo", "1234", suggested_object_id="Test light", **er_kwargs | ||
) | ||
hass.states.async_set("light.test_light", "off") | ||
calls = async_mock_service(hass, HASS_DOMAIN, "turn_on") | ||
result = await conversation.async_converse( | ||
hass, "turn on test light", None, Context(), None | ||
) | ||
|
||
assert len(calls) == 0 | ||
assert result.response.response_type == intent.IntentResponseType.ERROR | ||
assert result.response.error_code == intent.IntentResponseErrorCode.NO_INTENT_MATCH |