core/tests/components/ai_task/test_http.py

85 lines
2.3 KiB
Python

"""Test the HTTP API for AI Task integration."""
from homeassistant.core import HomeAssistant
from tests.typing import WebSocketGenerator
async def test_ws_preferences(
hass: HomeAssistant,
hass_ws_client: WebSocketGenerator,
init_components: None,
) -> None:
"""Test preferences via the WebSocket API."""
client = await hass_ws_client(hass)
# Get initial preferences
await client.send_json_auto_id({"type": "ai_task/preferences/get"})
msg = await client.receive_json()
assert msg["success"]
assert msg["result"] == {
"gen_data_entity_id": None,
}
# Set preferences
await client.send_json_auto_id(
{
"type": "ai_task/preferences/set",
"gen_data_entity_id": "ai_task.summary_1",
}
)
msg = await client.receive_json()
assert msg["success"]
assert msg["result"] == {
"gen_data_entity_id": "ai_task.summary_1",
}
# Get updated preferences
await client.send_json_auto_id({"type": "ai_task/preferences/get"})
msg = await client.receive_json()
assert msg["success"]
assert msg["result"] == {
"gen_data_entity_id": "ai_task.summary_1",
}
# Update an existing preference
await client.send_json_auto_id(
{
"type": "ai_task/preferences/set",
"gen_data_entity_id": "ai_task.summary_2",
}
)
msg = await client.receive_json()
assert msg["success"]
assert msg["result"] == {
"gen_data_entity_id": "ai_task.summary_2",
}
# Get updated preferences
await client.send_json_auto_id({"type": "ai_task/preferences/get"})
msg = await client.receive_json()
assert msg["success"]
assert msg["result"] == {
"gen_data_entity_id": "ai_task.summary_2",
}
# No preferences set will preserve existing preferences
await client.send_json_auto_id(
{
"type": "ai_task/preferences/set",
}
)
msg = await client.receive_json()
assert msg["success"]
assert msg["result"] == {
"gen_data_entity_id": "ai_task.summary_2",
}
# Get updated preferences
await client.send_json_auto_id({"type": "ai_task/preferences/get"})
msg = await client.receive_json()
assert msg["success"]
assert msg["result"] == {
"gen_data_entity_id": "ai_task.summary_2",
}