mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 18:57:06 +00:00
Replace get_platform (#23014)
* Update Z-Wave to use async_get_integration * Change load method per PR comments * update tests
This commit is contained in:
parent
7d46ed0bf9
commit
c8375be4b1
@ -1,6 +1,7 @@
|
|||||||
"""Support for Z-Wave."""
|
"""Support for Z-Wave."""
|
||||||
import asyncio
|
import asyncio
|
||||||
import copy
|
import copy
|
||||||
|
from importlib import import_module
|
||||||
import logging
|
import logging
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
|
||||||
@ -8,7 +9,6 @@ import voluptuous as vol
|
|||||||
|
|
||||||
from homeassistant import config_entries
|
from homeassistant import config_entries
|
||||||
from homeassistant.core import callback, CoreState
|
from homeassistant.core import callback, CoreState
|
||||||
from homeassistant.loader import get_platform
|
|
||||||
from homeassistant.helpers import discovery
|
from homeassistant.helpers import discovery
|
||||||
from homeassistant.helpers.entity import generate_entity_id
|
from homeassistant.helpers.entity import generate_entity_id
|
||||||
from homeassistant.helpers.entity_component import EntityComponent
|
from homeassistant.helpers.entity_component import EntityComponent
|
||||||
@ -908,7 +908,9 @@ class ZWaveDeviceEntityValues():
|
|||||||
if polling_intensity:
|
if polling_intensity:
|
||||||
self.primary.enable_poll(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(
|
device = platform.get_device(
|
||||||
node=self._node, values=self,
|
node=self._node, values=self,
|
||||||
node_config=node_config, hass=self._hass)
|
node_config=node_config, hass=self._hass)
|
||||||
|
@ -558,13 +558,13 @@ class TestZWaveDeviceEntityValues(unittest.TestCase):
|
|||||||
"""Stop everything that was started."""
|
"""Stop everything that was started."""
|
||||||
self.hass.stop()
|
self.hass.stop()
|
||||||
|
|
||||||
@patch.object(zwave, 'get_platform')
|
@patch.object(zwave, 'import_module')
|
||||||
@patch.object(zwave, 'discovery')
|
@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."""
|
"""Test the creation of a new entity."""
|
||||||
discovery.async_load_platform.return_value = mock_coro()
|
discovery.async_load_platform.return_value = mock_coro()
|
||||||
mock_platform = MagicMock()
|
mock_platform = MagicMock()
|
||||||
get_platform.return_value = mock_platform
|
import_module.return_value = mock_platform
|
||||||
mock_device = MagicMock()
|
mock_device = MagicMock()
|
||||||
mock_device.name = 'test_device'
|
mock_device.name = 'test_device'
|
||||||
mock_platform.get_device.return_value = mock_device
|
mock_platform.get_device.return_value = mock_device
|
||||||
@ -618,13 +618,13 @@ class TestZWaveDeviceEntityValues(unittest.TestCase):
|
|||||||
assert values._entity.value_changed.called
|
assert values._entity.value_changed.called
|
||||||
assert len(values._entity.value_changed.mock_calls) == 1
|
assert len(values._entity.value_changed.mock_calls) == 1
|
||||||
|
|
||||||
@patch.object(zwave, 'get_platform')
|
@patch.object(zwave, 'import_module')
|
||||||
@patch.object(zwave, 'discovery')
|
@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."""
|
"""Test the loading of already discovered values."""
|
||||||
discovery.async_load_platform.return_value = mock_coro()
|
discovery.async_load_platform.return_value = mock_coro()
|
||||||
mock_platform = MagicMock()
|
mock_platform = MagicMock()
|
||||||
get_platform.return_value = mock_platform
|
import_module.return_value = mock_platform
|
||||||
mock_device = MagicMock()
|
mock_device = MagicMock()
|
||||||
mock_device.name = 'test_device'
|
mock_device.name = 'test_device'
|
||||||
mock_platform.get_device.return_value = mock_device
|
mock_platform.get_device.return_value = mock_device
|
||||||
@ -663,9 +663,9 @@ class TestZWaveDeviceEntityValues(unittest.TestCase):
|
|||||||
assert args[4] == self.zwave_config
|
assert args[4] == self.zwave_config
|
||||||
assert not self.primary.enable_poll.called
|
assert not self.primary.enable_poll.called
|
||||||
|
|
||||||
@patch.object(zwave, 'get_platform')
|
@patch.object(zwave, 'import_module')
|
||||||
@patch.object(zwave, 'discovery')
|
@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."""
|
"""Test node schema mismatch."""
|
||||||
self.node.generic = 'no_match'
|
self.node.generic = 'no_match'
|
||||||
self.node.values = {
|
self.node.values = {
|
||||||
@ -686,13 +686,13 @@ class TestZWaveDeviceEntityValues(unittest.TestCase):
|
|||||||
|
|
||||||
assert not discovery.async_load_platform.called
|
assert not discovery.async_load_platform.called
|
||||||
|
|
||||||
@patch.object(zwave, 'get_platform')
|
@patch.object(zwave, 'import_module')
|
||||||
@patch.object(zwave, 'discovery')
|
@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."""
|
"""Test component workaround."""
|
||||||
discovery.async_load_platform.return_value = mock_coro()
|
discovery.async_load_platform.return_value = mock_coro()
|
||||||
mock_platform = MagicMock()
|
mock_platform = MagicMock()
|
||||||
get_platform.return_value = mock_platform
|
import_module.return_value = mock_platform
|
||||||
mock_device = MagicMock()
|
mock_device = MagicMock()
|
||||||
mock_device.name = 'test_device'
|
mock_device.name = 'test_device'
|
||||||
mock_platform.get_device.return_value = mock_device
|
mock_platform.get_device.return_value = mock_device
|
||||||
@ -729,9 +729,9 @@ class TestZWaveDeviceEntityValues(unittest.TestCase):
|
|||||||
args = mock_dispatch_send.mock_calls[0][1]
|
args = mock_dispatch_send.mock_calls[0][1]
|
||||||
assert args[1] == 'zwave_new_binary_sensor'
|
assert args[1] == 'zwave_new_binary_sensor'
|
||||||
|
|
||||||
@patch.object(zwave, 'get_platform')
|
@patch.object(zwave, 'import_module')
|
||||||
@patch.object(zwave, 'discovery')
|
@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."""
|
"""Test ignore workaround."""
|
||||||
self.node.manufacturer_id = '010f'
|
self.node.manufacturer_id = '010f'
|
||||||
self.node.product_type = '0301'
|
self.node.product_type = '0301'
|
||||||
@ -758,9 +758,9 @@ class TestZWaveDeviceEntityValues(unittest.TestCase):
|
|||||||
|
|
||||||
assert not discovery.async_load_platform.called
|
assert not discovery.async_load_platform.called
|
||||||
|
|
||||||
@patch.object(zwave, 'get_platform')
|
@patch.object(zwave, 'import_module')
|
||||||
@patch.object(zwave, 'discovery')
|
@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."""
|
"""Test ignore config."""
|
||||||
self.node.values = {
|
self.node.values = {
|
||||||
self.primary.value_id: self.primary,
|
self.primary.value_id: self.primary,
|
||||||
@ -782,9 +782,10 @@ class TestZWaveDeviceEntityValues(unittest.TestCase):
|
|||||||
|
|
||||||
assert not discovery.async_load_platform.called
|
assert not discovery.async_load_platform.called
|
||||||
|
|
||||||
@patch.object(zwave, 'get_platform')
|
@patch.object(zwave, 'import_module')
|
||||||
@patch.object(zwave, 'discovery')
|
@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.
|
"""Test ignore config.
|
||||||
|
|
||||||
The case when the device is in entity registry.
|
The case when the device is in entity registry.
|
||||||
@ -813,16 +814,16 @@ class TestZWaveDeviceEntityValues(unittest.TestCase):
|
|||||||
|
|
||||||
assert not discovery.async_load_platform.called
|
assert not discovery.async_load_platform.called
|
||||||
|
|
||||||
@patch.object(zwave, 'get_platform')
|
@patch.object(zwave, 'import_module')
|
||||||
@patch.object(zwave, 'discovery')
|
@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."""
|
"""Test platform ignore device."""
|
||||||
self.node.values = {
|
self.node.values = {
|
||||||
self.primary.value_id: self.primary,
|
self.primary.value_id: self.primary,
|
||||||
self.secondary.value_id: self.secondary,
|
self.secondary.value_id: self.secondary,
|
||||||
}
|
}
|
||||||
platform = MagicMock()
|
platform = MagicMock()
|
||||||
get_platform.return_value = platform
|
import_module.return_value = platform
|
||||||
platform.get_device.return_value = None
|
platform.get_device.return_value = None
|
||||||
zwave.ZWaveDeviceEntityValues(
|
zwave.ZWaveDeviceEntityValues(
|
||||||
hass=self.hass,
|
hass=self.hass,
|
||||||
@ -836,12 +837,12 @@ class TestZWaveDeviceEntityValues(unittest.TestCase):
|
|||||||
|
|
||||||
assert not discovery.async_load_platform.called
|
assert not discovery.async_load_platform.called
|
||||||
|
|
||||||
@patch.object(zwave, 'get_platform')
|
@patch.object(zwave, 'import_module')
|
||||||
@patch.object(zwave, 'discovery')
|
@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."""
|
"""Test polling intensity."""
|
||||||
mock_platform = MagicMock()
|
mock_platform = MagicMock()
|
||||||
get_platform.return_value = mock_platform
|
import_module.return_value = mock_platform
|
||||||
mock_device = MagicMock()
|
mock_device = MagicMock()
|
||||||
mock_device.name = 'test_device'
|
mock_device.name = 'test_device'
|
||||||
mock_platform.get_device.return_value = mock_device
|
mock_platform.get_device.return_value = mock_device
|
||||||
|
Loading…
x
Reference in New Issue
Block a user