* Run zwave_js scaffold (#44891) * Add zwave_js basic connection to zwave server (#44904) * add the basic connection to zwave server * fix name * Fix requirements * Fix things * Version bump dep to 0.1.2 * fix pylint Co-authored-by: Paulus Schoutsen <balloob@gmail.com> * Bump zwave-js-server-python to 0.2.0 * Use zwave js server version check instead of fetching full state (#44943) * Use version check instead of fetching full state * Fix tests * Use 0.3.0 * Also catch aiohttp client errors * Update docstring * Lint * Unignore zwave_js * Add zwave_js entity discovery basics and sensor platform (#44927) Co-authored-by: Martin Hjelmare <marhje52@gmail.com> Co-authored-by: Paulus Schoutsen <balloob@gmail.com> * Complete zwave_js typing (#44960) * Type discovery * Type init * Type entity * Type config flow * Type sensor * Require typing of zwave_js * Complete zwave_js config flow test coverage (#44955) * Correct zwave_js sensor device class (#44968) * Fix zwave_js KeyError on entry setup timeout (#44966) * Bump zwave-js-server-python to 0.5.0 (#44975) * Remove stale callback signal from zwave_js (#44994) * Add light platform to zwave_js integration (#44974) * add light platform * styling fix * fix type hint * Fix typing * Update homeassistant/components/zwave_js/const.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/zwave_js/entity.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/zwave_js/entity.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/zwave_js/entity.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/zwave_js/entity.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/zwave_js/entity.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * color temp should be integer * guard Nonetype error * Update homeassistant/components/zwave_js/light.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/zwave_js/light.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * some fixes after merging * add additional guards for None values * adjustments for rgb lights * Fix typing * Fix black * Bump zwave-js-server-python to 0.6.0 * guard value updated log * remove value_id lookup as its no longer needed * fiz sending white value * Update homeassistant/components/zwave_js/light.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Add zwave_js test foundation (#44983) * Exclude text files from codespell * Add basic dump fixture * Add test foundation * Fix test after rebase * Exclude jsonl files from codespell * Rename fixture file type to jsonl * Update fixture path * Fix stale docstring * Add controller state json fixture * Add multisensor 6 state json fixture * Update fixtures * Remove basic dump fixture * Fix fixtures after library bump * Update codeowner * Minor cleanup Z-Wave JS (#45021) * Update zwave_js device_info (#45023) Co-authored-by: Martin Hjelmare <marhje52@gmail.com> Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
"""Provide common Z-Wave JS fixtures."""
|
|
import json
|
|
from unittest.mock import patch
|
|
|
|
import pytest
|
|
from zwave_js_server.model.driver import Driver
|
|
from zwave_js_server.model.node import Node
|
|
|
|
from tests.common import MockConfigEntry, load_fixture
|
|
|
|
|
|
@pytest.fixture(name="controller_state", scope="session")
|
|
def controller_state_fixture():
|
|
"""Load the controller state fixture data."""
|
|
return json.loads(load_fixture("zwave_js/controller_state.json"))
|
|
|
|
|
|
@pytest.fixture(name="multisensor_6_state", scope="session")
|
|
def multisensor_6_state_fixture():
|
|
"""Load the multisensor 6 node state fixture data."""
|
|
return json.loads(load_fixture("zwave_js/multisensor_6_state.json"))
|
|
|
|
|
|
@pytest.fixture(name="client")
|
|
def mock_client_fixture(controller_state):
|
|
"""Mock a client."""
|
|
with patch(
|
|
"homeassistant.components.zwave_js.ZwaveClient", autospec=True
|
|
) as client_class:
|
|
driver = Driver(client_class.return_value, controller_state)
|
|
client_class.return_value.driver = driver
|
|
yield client_class.return_value
|
|
|
|
|
|
@pytest.fixture(name="multisensor_6")
|
|
def multisensor_6_fixture(client, multisensor_6_state):
|
|
"""Mock a multisensor 6 node."""
|
|
node = Node(client, multisensor_6_state)
|
|
client.driver.controller.nodes[node.node_id] = node
|
|
return node
|
|
|
|
|
|
@pytest.fixture(name="integration")
|
|
async def integration_fixture(hass, client):
|
|
"""Set up the zwave_js integration."""
|
|
entry = MockConfigEntry(domain="zwave_js", data={"url": "ws://test.org"})
|
|
entry.add_to_hass(hass)
|
|
|
|
def initialize_client(async_on_initialized):
|
|
"""Init the client."""
|
|
hass.async_create_task(async_on_initialized())
|
|
|
|
client.register_on_initialized.side_effect = initialize_client
|
|
|
|
await hass.config_entries.async_setup(entry.entry_id)
|
|
await hass.async_block_till_done()
|
|
|
|
return entry
|