mirror of https://github.com/home-assistant/core
59 lines
2.0 KiB
Python
59 lines
2.0 KiB
Python
"""Tests for the Lutron Homeworks Series 4 and 8 button."""
|
|
|
|
from unittest.mock import MagicMock
|
|
|
|
from homeassistant.components.button import DOMAIN as BUTTON_DOMAIN, SERVICE_PRESS
|
|
from homeassistant.const import ATTR_ENTITY_ID
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from tests.common import MockConfigEntry
|
|
|
|
|
|
async def test_button_service_calls(
|
|
hass: HomeAssistant,
|
|
mock_config_entry: MockConfigEntry,
|
|
mock_homeworks: MagicMock,
|
|
) -> None:
|
|
"""Test Homeworks button service call."""
|
|
entity_id = "button.foyer_keypad_morning"
|
|
mock_controller = MagicMock()
|
|
mock_homeworks.return_value = mock_controller
|
|
|
|
mock_config_entry.add_to_hass(hass)
|
|
await hass.config_entries.async_setup(mock_config_entry.entry_id)
|
|
await hass.async_block_till_done()
|
|
|
|
assert entity_id in hass.states.async_entity_ids(BUTTON_DOMAIN)
|
|
|
|
mock_controller._send.reset_mock()
|
|
await hass.services.async_call(
|
|
BUTTON_DOMAIN, SERVICE_PRESS, {ATTR_ENTITY_ID: entity_id}, blocking=True
|
|
)
|
|
assert len(mock_controller._send.mock_calls) == 1
|
|
assert mock_controller._send.mock_calls[0][1] == ("KBP, [02:08:02:01], 1",)
|
|
|
|
|
|
async def test_button_service_calls_delay(
|
|
hass: HomeAssistant,
|
|
mock_config_entry: MockConfigEntry,
|
|
mock_homeworks: MagicMock,
|
|
) -> None:
|
|
"""Test Homeworks button service call."""
|
|
entity_id = "button.foyer_keypad_dim_up"
|
|
mock_controller = MagicMock()
|
|
mock_homeworks.return_value = mock_controller
|
|
|
|
mock_config_entry.add_to_hass(hass)
|
|
await hass.config_entries.async_setup(mock_config_entry.entry_id)
|
|
await hass.async_block_till_done()
|
|
|
|
assert entity_id in hass.states.async_entity_ids(BUTTON_DOMAIN)
|
|
|
|
mock_controller._send.reset_mock()
|
|
await hass.services.async_call(
|
|
BUTTON_DOMAIN, SERVICE_PRESS, {ATTR_ENTITY_ID: entity_id}, blocking=True
|
|
)
|
|
assert len(mock_controller._send.mock_calls) == 2
|
|
assert mock_controller._send.mock_calls[0][1] == ("KBP, [02:08:02:01], 3",)
|
|
assert mock_controller._send.mock_calls[1][1] == ("KBR, [02:08:02:01], 3",)
|