"""Power-on behaviour.""" from __future__ import annotations from unittest.mock import MagicMock from homeassistant.components.select import ATTR_OPTION, SERVICE_SELECT_OPTION from homeassistant.components.select import DOMAIN as SELECT_DOMAIN from homeassistant.const import ATTR_ENTITY_ID from homeassistant.core import HomeAssistant from tests.helpers import entity_id_for async def test_select_reads_and_writes( hass: HomeAssistant, init_integration, mock_client: MagicMock ) -> None: entity_id = entity_id_for(hass, "select", "power_on_behaviour") state = hass.states.get(entity_id) assert state.state == "last" assert state.attributes["options"] == ["last", "on", "off"] await hass.services.async_call( SELECT_DOMAIN, SERVICE_SELECT_OPTION, {ATTR_ENTITY_ID: entity_id, ATTR_OPTION: "off"}, blocking=True, ) mock_client.set_state.assert_awaited_once_with(power_on_behaviour="off") assert hass.states.get(entity_id).state == "off" async def test_unknown_value_from_lamp_is_unknown( hass: HomeAssistant, mock_config_entry, mock_client: MagicMock, lamp_state ) -> None: lamp_state["power_on_behaviour"] = "fade" mock_config_entry.add_to_hass(hass) assert await hass.config_entries.async_setup(mock_config_entry.entry_id) await hass.async_block_till_done() assert hass.states.get(entity_id_for(hass, "select", "power_on_behaviour")).state == "unknown"