Skip to content

Commit

Permalink
Add a test for async_converse (home-assistant#124697)
Browse files Browse the repository at this point in the history
  • Loading branch information
balloob authored Aug 27, 2024
1 parent c1c158c commit 1936aec
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 0 deletions.
11 changes: 11 additions & 0 deletions homeassistant/components/conversation/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,22 @@ class ConversationInput:
"""User input to be processed."""

text: str
"""User spoken text."""

context: Context
"""Context of the request."""

conversation_id: str | None
"""Unique identifier for the conversation."""

device_id: str | None
"""Unique identifier for the device."""

language: str
"""Language of the request."""

agent_id: str | None = None
"""Agent to use for processing."""


@dataclass(slots=True)
Expand Down
34 changes: 34 additions & 0 deletions tests/components/conversation/test_agent_manager.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
"""Test agent manager."""

from unittest.mock import patch

from homeassistant.components.conversation import ConversationResult, async_converse
from homeassistant.core import Context, HomeAssistant
from homeassistant.helpers.intent import IntentResponse


async def test_async_converse(hass: HomeAssistant, init_components) -> None:
"""Test the async_converse method."""
context = Context()
with patch(
"homeassistant.components.conversation.default_agent.DefaultAgent.async_process",
return_value=ConversationResult(response=IntentResponse(language="test lang")),
) as mock_process:
await async_converse(
hass,
text="test command",
conversation_id="test id",
context=context,
language="test lang",
agent_id="conversation.home_assistant",
device_id="test device id",
)

assert mock_process.called
conversation_input = mock_process.call_args[0][0]
assert conversation_input.text == "test command"
assert conversation_input.conversation_id == "test id"
assert conversation_input.context is context
assert conversation_input.language == "test lang"
assert conversation_input.agent_id == "conversation.home_assistant"
assert conversation_input.device_id == "test device id"

0 comments on commit 1936aec

Please sign in to comment.