Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions homeassistant/components/zwave/__init__.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
"""Support for Z-Wave."""
import asyncio
import copy
from importlib import import_module
import logging
from pprint import pprint

import voluptuous as vol

from homeassistant import config_entries
from homeassistant.core import callback, CoreState
from homeassistant.loader import get_platform
from homeassistant.helpers import discovery
from homeassistant.helpers.entity import generate_entity_id
from homeassistant.helpers.entity_component import EntityComponent
Expand Down Expand Up @@ -908,7 +908,9 @@ def _check_entity_ready(self):
if polling_intensity:
self.primary.enable_poll(polling_intensity)

platform = get_platform(self._hass, component, DOMAIN)
platform = import_module('.{}'.format(component),
__name__)

device = platform.get_device(
node=self._node, values=self,
node_config=node_config, hass=self._hass)
Expand Down
47 changes: 24 additions & 23 deletions tests/components/zwave/test_init.py
Original file line number Diff line number Diff line change
Expand Up @@ -558,13 +558,13 @@ def tearDown(self): # pylint: disable=invalid-name
"""Stop everything that was started."""
self.hass.stop()

@patch.object(zwave, 'get_platform')
@patch.object(zwave, 'import_module')
@patch.object(zwave, 'discovery')
def test_entity_discovery(self, discovery, get_platform):
def test_entity_discovery(self, discovery, import_module):
"""Test the creation of a new entity."""
discovery.async_load_platform.return_value = mock_coro()
mock_platform = MagicMock()
get_platform.return_value = mock_platform
import_module.return_value = mock_platform
mock_device = MagicMock()
mock_device.name = 'test_device'
mock_platform.get_device.return_value = mock_device
Expand Down Expand Up @@ -618,13 +618,13 @@ def test_entity_discovery(self, discovery, get_platform):
assert values._entity.value_changed.called
assert len(values._entity.value_changed.mock_calls) == 1

@patch.object(zwave, 'get_platform')
@patch.object(zwave, 'import_module')
@patch.object(zwave, 'discovery')
def test_entity_existing_values(self, discovery, get_platform):
def test_entity_existing_values(self, discovery, import_module):
"""Test the loading of already discovered values."""
discovery.async_load_platform.return_value = mock_coro()
mock_platform = MagicMock()
get_platform.return_value = mock_platform
import_module.return_value = mock_platform
mock_device = MagicMock()
mock_device.name = 'test_device'
mock_platform.get_device.return_value = mock_device
Expand Down Expand Up @@ -663,9 +663,9 @@ def test_entity_existing_values(self, discovery, get_platform):
assert args[4] == self.zwave_config
assert not self.primary.enable_poll.called

@patch.object(zwave, 'get_platform')
@patch.object(zwave, 'import_module')
@patch.object(zwave, 'discovery')
def test_node_schema_mismatch(self, discovery, get_platform):
def test_node_schema_mismatch(self, discovery, import_module):
"""Test node schema mismatch."""
self.node.generic = 'no_match'
self.node.values = {
Expand All @@ -686,13 +686,13 @@ def test_node_schema_mismatch(self, discovery, get_platform):

assert not discovery.async_load_platform.called

@patch.object(zwave, 'get_platform')
@patch.object(zwave, 'import_module')
@patch.object(zwave, 'discovery')
def test_entity_workaround_component(self, discovery, get_platform):
def test_entity_workaround_component(self, discovery, import_module):
"""Test component workaround."""
discovery.async_load_platform.return_value = mock_coro()
mock_platform = MagicMock()
get_platform.return_value = mock_platform
import_module.return_value = mock_platform
mock_device = MagicMock()
mock_device.name = 'test_device'
mock_platform.get_device.return_value = mock_device
Expand Down Expand Up @@ -729,9 +729,9 @@ def test_entity_workaround_component(self, discovery, get_platform):
args = mock_dispatch_send.mock_calls[0][1]
assert args[1] == 'zwave_new_binary_sensor'

@patch.object(zwave, 'get_platform')
@patch.object(zwave, 'import_module')
@patch.object(zwave, 'discovery')
def test_entity_workaround_ignore(self, discovery, get_platform):
def test_entity_workaround_ignore(self, discovery, import_module):
"""Test ignore workaround."""
self.node.manufacturer_id = '010f'
self.node.product_type = '0301'
Expand All @@ -758,9 +758,9 @@ def test_entity_workaround_ignore(self, discovery, get_platform):

assert not discovery.async_load_platform.called

@patch.object(zwave, 'get_platform')
@patch.object(zwave, 'import_module')
@patch.object(zwave, 'discovery')
def test_entity_config_ignore(self, discovery, get_platform):
def test_entity_config_ignore(self, discovery, import_module):
"""Test ignore config."""
self.node.values = {
self.primary.value_id: self.primary,
Expand All @@ -782,9 +782,10 @@ def test_entity_config_ignore(self, discovery, get_platform):

assert not discovery.async_load_platform.called

@patch.object(zwave, 'get_platform')
@patch.object(zwave, 'import_module')
@patch.object(zwave, 'discovery')
def test_entity_config_ignore_with_registry(self, discovery, get_platform):
def test_entity_config_ignore_with_registry(self, discovery,
import_module):
"""Test ignore config.

The case when the device is in entity registry.
Expand Down Expand Up @@ -813,16 +814,16 @@ def test_entity_config_ignore_with_registry(self, discovery, get_platform):

assert not discovery.async_load_platform.called

@patch.object(zwave, 'get_platform')
@patch.object(zwave, 'import_module')
@patch.object(zwave, 'discovery')
def test_entity_platform_ignore(self, discovery, get_platform):
def test_entity_platform_ignore(self, discovery, import_module):
"""Test platform ignore device."""
self.node.values = {
self.primary.value_id: self.primary,
self.secondary.value_id: self.secondary,
}
platform = MagicMock()
get_platform.return_value = platform
import_module.return_value = platform
platform.get_device.return_value = None
zwave.ZWaveDeviceEntityValues(
hass=self.hass,
Expand All @@ -836,12 +837,12 @@ def test_entity_platform_ignore(self, discovery, get_platform):

assert not discovery.async_load_platform.called

@patch.object(zwave, 'get_platform')
@patch.object(zwave, 'import_module')
@patch.object(zwave, 'discovery')
def test_config_polling_intensity(self, discovery, get_platform):
def test_config_polling_intensity(self, discovery, import_module):
"""Test polling intensity."""
mock_platform = MagicMock()
get_platform.return_value = mock_platform
import_module.return_value = mock_platform
mock_device = MagicMock()
mock_device.name = 'test_device'
mock_platform.get_device.return_value = mock_device
Expand Down