From e157206eeba713e498ad6501c9fcc9601551804f Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Fri, 10 Nov 2023 12:22:49 -0600 Subject: [PATCH] Conversation reload with language=None clears all languages (#103757) Reload with language=None clears all languages --- homeassistant/components/conversation/default_agent.py | 9 +++++---- tests/components/conversation/test_init.py | 9 ++++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/conversation/default_agent.py b/homeassistant/components/conversation/default_agent.py index 09245fde8dc..9dcf70dda80 100644 --- a/homeassistant/components/conversation/default_agent.py +++ b/homeassistant/components/conversation/default_agent.py @@ -368,10 +368,11 @@ class DefaultAgent(AbstractConversationAgent): async def async_reload(self, language: str | None = None): """Clear cached intents for a language.""" if language is None: - language = self.hass.config.language - - self._lang_intents.pop(language, None) - _LOGGER.debug("Cleared intents for language: %s", language) + self._lang_intents.clear() + _LOGGER.debug("Cleared intents for all languages") + else: + self._lang_intents.pop(language, None) + _LOGGER.debug("Cleared intents for language: %s", language) async def async_prepare(self, language: str | None = None): """Load intents for a language.""" diff --git a/tests/components/conversation/test_init.py b/tests/components/conversation/test_init.py index 37c8f9401bc..fdbf10b0c7f 100644 --- a/tests/components/conversation/test_init.py +++ b/tests/components/conversation/test_init.py @@ -1307,7 +1307,14 @@ async def test_prepare_reload(hass: HomeAssistant) -> None: # Confirm intents are loaded assert agent._lang_intents.get(language) - # Clear cache + # Try to clear for a different language + await hass.services.async_call("conversation", "reload", {"language": "elvish"}) + await hass.async_block_till_done() + + # Confirm intents are still loaded + assert agent._lang_intents.get(language) + + # Clear cache for all languages await hass.services.async_call("conversation", "reload", {}) await hass.async_block_till_done()