mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 12:59:34 +00:00
Add Dynalite service to request the channel level (#38735)
* added service to request the channel level * cleanup * Update homeassistant/components/dynalite/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/dynalite/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update services.yaml Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
"""Test Dynalite __init__."""
|
||||
|
||||
|
||||
import pytest
|
||||
from voluptuous import MultipleInvalid
|
||||
|
||||
import homeassistant.components.dynalite.const as dynalite
|
||||
from homeassistant.const import CONF_HOST, CONF_NAME, CONF_PORT, CONF_ROOM
|
||||
from homeassistant.setup import async_setup_component
|
||||
@@ -93,12 +96,8 @@ async def test_service_request_area_preset(hass):
|
||||
{
|
||||
dynalite.DOMAIN: {
|
||||
dynalite.CONF_BRIDGES: [
|
||||
{
|
||||
CONF_HOST: "1.2.3.4",
|
||||
CONF_PORT: 1234,
|
||||
dynalite.CONF_AREA: {"7": {CONF_NAME: "test"}},
|
||||
},
|
||||
{CONF_HOST: "5.6.7.8", CONF_PORT: 5678},
|
||||
{CONF_HOST: "1.2.3.4"},
|
||||
{CONF_HOST: "5.6.7.8"},
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -144,6 +143,53 @@ async def test_service_request_area_preset(hass):
|
||||
mock_req_area_pres.assert_called_once_with(7, 1)
|
||||
|
||||
|
||||
async def test_service_request_channel_level(hass):
|
||||
"""Test requesting the level of a channel via service call."""
|
||||
with patch(
|
||||
"homeassistant.components.dynalite.bridge.DynaliteDevices.async_setup",
|
||||
return_value=True,
|
||||
), patch(
|
||||
"dynalite_devices_lib.dynalite.Dynalite.request_channel_level",
|
||||
return_value=True,
|
||||
) as mock_req_chan_lvl:
|
||||
assert await async_setup_component(
|
||||
hass,
|
||||
dynalite.DOMAIN,
|
||||
{
|
||||
dynalite.DOMAIN: {
|
||||
dynalite.CONF_BRIDGES: [
|
||||
{
|
||||
CONF_HOST: "1.2.3.4",
|
||||
dynalite.CONF_AREA: {"7": {CONF_NAME: "test"}},
|
||||
},
|
||||
{CONF_HOST: "5.6.7.8"},
|
||||
]
|
||||
}
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(hass.config_entries.async_entries(dynalite.DOMAIN)) == 2
|
||||
await hass.services.async_call(
|
||||
dynalite.DOMAIN,
|
||||
"request_channel_level",
|
||||
{"host": "1.2.3.4", "area": 2, "channel": 3},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
mock_req_chan_lvl.assert_called_once_with(2, 3)
|
||||
mock_req_chan_lvl.reset_mock()
|
||||
with pytest.raises(MultipleInvalid):
|
||||
await hass.services.async_call(
|
||||
dynalite.DOMAIN, "request_channel_level", {"area": 3},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
mock_req_chan_lvl.assert_not_called()
|
||||
await hass.services.async_call(
|
||||
dynalite.DOMAIN, "request_channel_level", {"area": 4, "channel": 5},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert mock_req_chan_lvl.mock_calls == [call(4, 5), call(4, 5)]
|
||||
|
||||
|
||||
async def test_async_setup_bad_config1(hass):
|
||||
"""Test a successful with bad config on templates."""
|
||||
with patch(
|
||||
|
||||
Reference in New Issue
Block a user