"""The tests for Google Assistant logbook.""" from homeassistant.components import logbook from homeassistant.components.google_assistant.const import ( DOMAIN, EVENT_COMMAND_RECEIVED, SOURCE_CLOUD, SOURCE_LOCAL, ) from homeassistant.const import ATTR_ENTITY_ID, ATTR_FRIENDLY_NAME from homeassistant.setup import async_setup_component from tests.components.logbook.test_init import MockLazyEventPartialState async def test_humanify_command_received(hass): """Test humanifying command event.""" hass.config.components.add("recorder") hass.config.components.add("frontend") hass.config.components.add("google_assistant") assert await async_setup_component(hass, "logbook", {}) entity_attr_cache = logbook.EntityAttributeCache(hass) hass.states.async_set( "light.kitchen", "on", {ATTR_FRIENDLY_NAME: "The Kitchen Lights"} ) events = list( logbook.humanify( hass, [ MockLazyEventPartialState( EVENT_COMMAND_RECEIVED, { "request_id": "abcd", ATTR_ENTITY_ID: ["light.kitchen"], "execution": [ { "command": "action.devices.commands.OnOff", "params": {"on": True}, } ], "source": SOURCE_LOCAL, }, ), MockLazyEventPartialState( EVENT_COMMAND_RECEIVED, { "request_id": "abcd", ATTR_ENTITY_ID: ["light.non_existing"], "execution": [ { "command": "action.devices.commands.OnOff", "params": {"on": False}, } ], "source": SOURCE_CLOUD, }, ), ], entity_attr_cache, {}, ) ) assert len(events) == 2 event1, event2 = events assert event1["name"] == "Google Assistant" assert event1["domain"] == DOMAIN assert event1["message"] == "sent command OnOff (via local)" assert event2["name"] == "Google Assistant" assert event2["domain"] == DOMAIN assert event2["message"] == "sent command OnOff"