75 lines
2.2 KiB
Python
Executable File
75 lines
2.2 KiB
Python
Executable File
"""Test Dynalite __init__."""
|
|
from unittest.mock import Mock, call, patch
|
|
|
|
from homeassistant.components.dynalite import DATA_CONFIGS, DOMAIN, LOGGER
|
|
from homeassistant.components.dynalite.__init__ import (
|
|
async_setup,
|
|
async_setup_entry,
|
|
async_unload_entry,
|
|
)
|
|
|
|
from tests.common import mock_coro
|
|
|
|
|
|
async def test_async_setup():
|
|
"""Test a successful setup."""
|
|
new_host = "1.2.3.4"
|
|
old_host = "5.6.7.8"
|
|
hass = Mock()
|
|
hass.data = {}
|
|
config = {DOMAIN: {"bridges": [{"host": old_host}, {"host": new_host}]}}
|
|
mock_conf_host = Mock(return_value=[old_host])
|
|
with patch(
|
|
"homeassistant.components.dynalite.__init__.configured_hosts", mock_conf_host
|
|
):
|
|
await async_setup(hass, config)
|
|
mock_conf_host.assert_called_once()
|
|
assert mock_conf_host.mock_calls[0] == call(hass)
|
|
assert hass.data[DOMAIN][DATA_CONFIGS] == {
|
|
new_host: {"host": new_host},
|
|
old_host: {"host": old_host},
|
|
}
|
|
hass.async_create_task.assert_called_once()
|
|
|
|
|
|
async def test_async_setup_entry():
|
|
"""Test setup of an entry."""
|
|
|
|
def async_mock(mock):
|
|
"""Return the return value of a mock from async."""
|
|
|
|
async def async_func(*args, **kwargs):
|
|
return mock()
|
|
|
|
return async_func
|
|
|
|
host = "1.2.3.4"
|
|
hass = Mock()
|
|
entry = Mock()
|
|
entry.data = {"host": host}
|
|
hass.data = {}
|
|
hass.data[DOMAIN] = {}
|
|
hass.data[DOMAIN][DATA_CONFIGS] = {host: {}}
|
|
mock_async_setup = Mock(return_value=True)
|
|
with patch(
|
|
"homeassistant.components.dynalite.__init__.DynaliteBridge.async_setup",
|
|
async_mock(mock_async_setup),
|
|
):
|
|
assert await async_setup_entry(hass, entry)
|
|
mock_async_setup.assert_called_once()
|
|
|
|
|
|
async def test_async_unload_entry():
|
|
"""Test unloading of an entry."""
|
|
hass = Mock()
|
|
mock_bridge = Mock()
|
|
mock_bridge.async_reset.return_value = mock_coro(True)
|
|
entry = Mock()
|
|
hass.data = {}
|
|
hass.data[DOMAIN] = {}
|
|
hass.data[DOMAIN][entry.entry_id] = mock_bridge
|
|
await async_unload_entry(hass, entry)
|
|
LOGGER.error("XXX calls=%s", mock_bridge.mock_calls)
|
|
mock_bridge.async_reset.assert_called_once()
|
|
assert mock_bridge.mock_calls[0] == call.async_reset()
|