mirror of https://github.com/home-assistant/core
51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
"""Tests for the Lutron Caseta integration."""
|
|
|
|
from homeassistant.components.button import DOMAIN as BUTTON_DOMAIN, SERVICE_PRESS
|
|
from homeassistant.const import ATTR_ENTITY_ID, STATE_UNKNOWN
|
|
from homeassistant.core import HomeAssistant
|
|
from homeassistant.helpers import entity_registry as er
|
|
|
|
from . import MockBridge, async_setup_integration
|
|
|
|
|
|
async def test_button_unique_id(
|
|
hass: HomeAssistant, entity_registry: er.EntityRegistry
|
|
) -> None:
|
|
"""Test a button unique id."""
|
|
await async_setup_integration(hass, MockBridge)
|
|
|
|
ra3_button_entity_id = (
|
|
"button.hallway_main_stairs_position_1_keypad_kitchen_pendants"
|
|
)
|
|
caseta_button_entity_id = "button.dining_room_pico_stop"
|
|
|
|
# Assert that Caseta buttons will have the bridge serial hash and the zone id as the uniqueID
|
|
assert entity_registry.async_get(ra3_button_entity_id).unique_id == "000004d2_1372"
|
|
assert (
|
|
entity_registry.async_get(caseta_button_entity_id).unique_id == "000004d2_111"
|
|
)
|
|
|
|
|
|
async def test_button_press(hass: HomeAssistant) -> None:
|
|
"""Test a button press."""
|
|
await async_setup_integration(hass, MockBridge)
|
|
|
|
ra3_button_entity_id = (
|
|
"button.hallway_main_stairs_position_1_keypad_kitchen_pendants"
|
|
)
|
|
|
|
state = hass.states.get(ra3_button_entity_id)
|
|
assert state
|
|
assert state.state == STATE_UNKNOWN
|
|
|
|
await hass.services.async_call(
|
|
BUTTON_DOMAIN,
|
|
SERVICE_PRESS,
|
|
{ATTR_ENTITY_ID: ra3_button_entity_id},
|
|
blocking=False,
|
|
)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get(ra3_button_entity_id)
|
|
assert state
|