* fixes per Martin Hjelmare * pylint fix * final fixes per request * fixed unit tests for new config flow * Added unit-tests to increase coverage. at 97% now * Added unit tests for 100% coverage of component * removed configured_host function and updated config_flow unit tests * added a pylint directive since it tells me by mistake DOMAIN is not used * fixed path (removed __init__) * Update homeassistant/components/dynalite/light.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/dynalite/light.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * fixed the test as we moved from schedule_update_... to async_schedule * Update homeassistant/components/dynalite/bridge.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * removed context from config_flow changed test_init to use the core methods * moved test_light to also use the core interfaces * moved to config_entries.async_unload * additional fixes for the tests * pylint fix and removed unnecessary code * Update tests/components/dynalite/test_light.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/dynalite/test_light.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/dynalite/test_light.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/dynalite/test_light.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/dynalite/test_light.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/dynalite/test_light.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/dynalite/test_light.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/dynalite/test_light.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/dynalite/test_light.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * added break in loop * removed last mock_coro reference pylint fix * added coverage for try_connect * added check for a successful connection before bridge.async_setup succeeds also added a "nowait" config option (default False) that avoids this check * changed log level * fixed accidental chmod I did * fixed accidental change * not storing config in bridge * not patching asyncio * moved CONFIG_SCHEMA into component * moved all logs to start capitalized (and revised some of them) * moved test_config_flow to not patch the DynaliteBridge * also took DynaliteBridge patching out of test_init * removed NO_WAIT * fixes to SCHEMA * changed _ in multi-word CONF moved imports to component const.py * removed tries * removed redundant tests * fixed some small change i broke in the library. only version update * fixed rewuirements * Update tests/components/dynalite/test_config_flow.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/dynalite/test_light.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/dynalite/test_config_flow.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * removed HIDDEN_ENTITY removed hass in test fixture * black fixes * removed final piece of hidden_entity from light fix in the library updated config flow so if the entry is already set but with a different config, calls async_update_entry * removed DATA_CONFIGS - no longer necessary * pylint fixes * added coverage * use abort in config_flow * test update * removed logs * test that update actually updates the entry Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
62 lines
2.1 KiB
Python
Executable file
62 lines
2.1 KiB
Python
Executable file
"""Test Dynalite __init__."""
|
|
|
|
from asynctest import patch
|
|
|
|
from homeassistant.components import dynalite
|
|
from homeassistant.setup import async_setup_component
|
|
|
|
from tests.common import MockConfigEntry
|
|
|
|
|
|
async def test_empty_config(hass):
|
|
"""Test with an empty config."""
|
|
assert await async_setup_component(hass, dynalite.DOMAIN, {}) is True
|
|
assert len(hass.config_entries.flow.async_progress()) == 0
|
|
assert hass.data[dynalite.DOMAIN] == {}
|
|
|
|
|
|
async def test_async_setup(hass):
|
|
"""Test a successful setup."""
|
|
host = "1.2.3.4"
|
|
with patch(
|
|
"dynalite_devices_lib.DynaliteDevices.async_setup", return_value=True
|
|
), patch("dynalite_devices_lib.DynaliteDevices.available", True):
|
|
assert await async_setup_component(
|
|
hass,
|
|
dynalite.DOMAIN,
|
|
{dynalite.DOMAIN: {dynalite.CONF_BRIDGES: [{dynalite.CONF_HOST: host}]}},
|
|
)
|
|
|
|
assert len(hass.data[dynalite.DOMAIN]) == 1
|
|
|
|
|
|
async def test_async_setup_failed(hass):
|
|
"""Test a setup when DynaliteBridge.async_setup fails."""
|
|
host = "1.2.3.4"
|
|
with patch("dynalite_devices_lib.DynaliteDevices.async_setup", return_value=False):
|
|
assert await async_setup_component(
|
|
hass,
|
|
dynalite.DOMAIN,
|
|
{dynalite.DOMAIN: {dynalite.CONF_BRIDGES: [{dynalite.CONF_HOST: host}]}},
|
|
)
|
|
assert hass.data[dynalite.DOMAIN] == {}
|
|
|
|
|
|
async def test_unload_entry(hass):
|
|
"""Test being able to unload an entry."""
|
|
host = "1.2.3.4"
|
|
entry = MockConfigEntry(domain=dynalite.DOMAIN, data={"host": host})
|
|
entry.add_to_hass(hass)
|
|
|
|
with patch(
|
|
"dynalite_devices_lib.DynaliteDevices.async_setup", return_value=True
|
|
), patch("dynalite_devices_lib.DynaliteDevices.available", True):
|
|
assert await async_setup_component(
|
|
hass,
|
|
dynalite.DOMAIN,
|
|
{dynalite.DOMAIN: {dynalite.CONF_BRIDGES: [{dynalite.CONF_HOST: host}]}},
|
|
)
|
|
assert hass.data[dynalite.DOMAIN].get(entry.entry_id)
|
|
|
|
assert await hass.config_entries.async_unload(entry.entry_id)
|
|
assert not hass.data[dynalite.DOMAIN].get(entry.entry_id)
|