From b2d1774293ec004f81f8defd005007790d3b2c60 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 13 Feb 2017 08:54:11 -0800 Subject: [PATCH] Fix Z-Wave (#5955) --- homeassistant/components/zwave/__init__.py | 2 +- tests/components/zwave/__init__.py | 1 + tests/components/zwave/test_init.py | 46 ++++++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 tests/components/zwave/__init__.py create mode 100644 tests/components/zwave/test_init.py diff --git a/homeassistant/components/zwave/__init__.py b/homeassistant/components/zwave/__init__.py index ed234c3c614..6080454f825 100755 --- a/homeassistant/components/zwave/__init__.py +++ b/homeassistant/components/zwave/__init__.py @@ -174,7 +174,7 @@ CONFIG_SCHEMA = vol.Schema({ vol.Optional(CONF_AUTOHEAL, default=DEFAULT_CONF_AUTOHEAL): cv.boolean, vol.Optional(CONF_CONFIG_PATH): cv.string, vol.Optional(CONF_DEVICE_CONFIG, default={}): - _DEVICE_CONFIG_SCHEMA_ENTRY, + vol.Schema({cv.entity_id: _DEVICE_CONFIG_SCHEMA_ENTRY}), vol.Optional(CONF_DEBUG, default=DEFAULT_DEBUG): cv.boolean, vol.Optional(CONF_POLLING_INTERVAL, default=DEFAULT_POLLING_INTERVAL): cv.positive_int, diff --git a/tests/components/zwave/__init__.py b/tests/components/zwave/__init__.py new file mode 100644 index 00000000000..996bbf22b69 --- /dev/null +++ b/tests/components/zwave/__init__.py @@ -0,0 +1 @@ +"""Tests for the Z-Wave component.""" diff --git a/tests/components/zwave/test_init.py b/tests/components/zwave/test_init.py new file mode 100644 index 00000000000..2bfb8986544 --- /dev/null +++ b/tests/components/zwave/test_init.py @@ -0,0 +1,46 @@ +"""Tests for the Z-Wave init.""" +import asyncio +from unittest.mock import MagicMock, patch + +import pytest + +from homeassistant.bootstrap import async_setup_component +from homeassistant.components.zwave import ( + DATA_DEVICE_CONFIG, _DEVICE_CONFIG_SCHEMA_ENTRY) + + +@pytest.fixture(autouse=True) +def mock_openzwave(): + """Mock out Open Z-Wave.""" + libopenzwave = MagicMock() + libopenzwave.__file__ = 'test' + with patch.dict('sys.modules', { + 'libopenzwave': libopenzwave, + 'openzwave.option': MagicMock(), + 'openzwave.network': MagicMock(), + 'openzwave.group': MagicMock(), + }): + yield + + +@asyncio.coroutine +def test_device_config(hass): + """Test device config stored in hass.""" + device_config = { + 'light.kitchen': { + 'ignored': 'true' + } + } + yield from async_setup_component(hass, 'zwave', { + 'zwave': { + 'device_config': device_config + }}) + + assert DATA_DEVICE_CONFIG in hass.data + + test_data = { + key: _DEVICE_CONFIG_SCHEMA_ENTRY(value) + for key, value in device_config.items() + } + + assert hass.data[DATA_DEVICE_CONFIG] == test_data