mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Rewrite zwave node entity tests to pytest style test function (#41239)
This commit is contained in:
parent
c02d9050b7
commit
5745e64cab
@ -1,8 +1,4 @@
|
|||||||
"""Test Z-Wave node entity."""
|
"""Test Z-Wave node entity."""
|
||||||
import unittest
|
|
||||||
|
|
||||||
import pytest
|
|
||||||
|
|
||||||
from homeassistant.components.zwave import const, node_entity
|
from homeassistant.components.zwave import const, node_entity
|
||||||
from homeassistant.const import ATTR_ENTITY_ID
|
from homeassistant.const import ATTR_ENTITY_ID
|
||||||
|
|
||||||
@ -235,436 +231,492 @@ async def test_application_version(hass, mock_openzwave):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("mock_openzwave")
|
async def test_network_node_changed_from_value(hass, mock_openzwave):
|
||||||
class TestZWaveNodeEntity(unittest.TestCase):
|
"""Test for network_node_changed."""
|
||||||
"""Class to test ZWaveNodeEntity."""
|
zwave_network = MagicMock()
|
||||||
|
node = mock_zwave.MockNode()
|
||||||
|
entity = node_entity.ZWaveNodeEntity(node, zwave_network)
|
||||||
|
value = mock_zwave.MockValue(node=node)
|
||||||
|
with patch.object(entity, "maybe_schedule_update") as mock:
|
||||||
|
mock_zwave.value_changed(value)
|
||||||
|
mock.assert_called_once_with()
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
"""Initialize values for this testcase class."""
|
|
||||||
self.zwave_network = MagicMock()
|
|
||||||
self.node = mock_zwave.MockNode(
|
|
||||||
query_stage="Dynamic",
|
|
||||||
is_awake=True,
|
|
||||||
is_ready=False,
|
|
||||||
is_failed=False,
|
|
||||||
is_info_received=True,
|
|
||||||
max_baud_rate=40000,
|
|
||||||
is_zwave_plus=False,
|
|
||||||
capabilities=[],
|
|
||||||
neighbors=[],
|
|
||||||
location=None,
|
|
||||||
)
|
|
||||||
self.entity = node_entity.ZWaveNodeEntity(self.node, self.zwave_network)
|
|
||||||
|
|
||||||
def test_network_node_changed_from_value(self):
|
async def test_network_node_changed_from_node(hass, mock_openzwave):
|
||||||
"""Test for network_node_changed."""
|
"""Test for network_node_changed."""
|
||||||
value = mock_zwave.MockValue(node=self.node)
|
zwave_network = MagicMock()
|
||||||
with patch.object(self.entity, "maybe_schedule_update") as mock:
|
node = mock_zwave.MockNode()
|
||||||
mock_zwave.value_changed(value)
|
entity = node_entity.ZWaveNodeEntity(node, zwave_network)
|
||||||
mock.assert_called_once_with()
|
with patch.object(entity, "maybe_schedule_update") as mock:
|
||||||
|
mock_zwave.node_changed(node)
|
||||||
|
mock.assert_called_once_with()
|
||||||
|
|
||||||
def test_network_node_changed_from_node(self):
|
|
||||||
"""Test for network_node_changed."""
|
|
||||||
with patch.object(self.entity, "maybe_schedule_update") as mock:
|
|
||||||
mock_zwave.node_changed(self.node)
|
|
||||||
mock.assert_called_once_with()
|
|
||||||
|
|
||||||
def test_network_node_changed_from_another_node(self):
|
async def test_network_node_changed_from_another_node(hass, mock_openzwave):
|
||||||
"""Test for network_node_changed."""
|
"""Test for network_node_changed."""
|
||||||
with patch.object(self.entity, "maybe_schedule_update") as mock:
|
zwave_network = MagicMock()
|
||||||
node = mock_zwave.MockNode(node_id=1024)
|
node = mock_zwave.MockNode()
|
||||||
mock_zwave.node_changed(node)
|
entity = node_entity.ZWaveNodeEntity(node, zwave_network)
|
||||||
assert not mock.called
|
with patch.object(entity, "maybe_schedule_update") as mock:
|
||||||
|
another_node = mock_zwave.MockNode(node_id=1024)
|
||||||
|
mock_zwave.node_changed(another_node)
|
||||||
|
assert not mock.called
|
||||||
|
|
||||||
def test_network_node_changed_from_notification(self):
|
|
||||||
"""Test for network_node_changed."""
|
|
||||||
with patch.object(self.entity, "maybe_schedule_update") as mock:
|
|
||||||
mock_zwave.notification(node_id=self.node.node_id)
|
|
||||||
mock.assert_called_once_with()
|
|
||||||
|
|
||||||
def test_network_node_changed_from_another_notification(self):
|
async def test_network_node_changed_from_notification(hass, mock_openzwave):
|
||||||
"""Test for network_node_changed."""
|
"""Test for network_node_changed."""
|
||||||
with patch.object(self.entity, "maybe_schedule_update") as mock:
|
zwave_network = MagicMock()
|
||||||
mock_zwave.notification(node_id=1024)
|
node = mock_zwave.MockNode()
|
||||||
assert not mock.called
|
entity = node_entity.ZWaveNodeEntity(node, zwave_network)
|
||||||
|
with patch.object(entity, "maybe_schedule_update") as mock:
|
||||||
|
mock_zwave.notification(node_id=node.node_id)
|
||||||
|
mock.assert_called_once_with()
|
||||||
|
|
||||||
def test_node_changed(self):
|
|
||||||
"""Test node_changed function."""
|
|
||||||
self.maxDiff = None
|
|
||||||
assert {
|
|
||||||
"node_id": self.node.node_id,
|
|
||||||
"node_name": "Mock Node",
|
|
||||||
"manufacturer_name": "Test Manufacturer",
|
|
||||||
"product_name": "Test Product",
|
|
||||||
} == self.entity.device_state_attributes
|
|
||||||
|
|
||||||
self.node.get_values.return_value = {1: mock_zwave.MockValue(data=1800)}
|
async def test_network_node_changed_from_another_notification(hass, mock_openzwave):
|
||||||
self.zwave_network.manager.getNodeStatistics.return_value = {
|
"""Test for network_node_changed."""
|
||||||
"receivedCnt": 4,
|
zwave_network = MagicMock()
|
||||||
"ccData": [
|
node = mock_zwave.MockNode()
|
||||||
{"receivedCnt": 0, "commandClassId": 134, "sentCnt": 0},
|
entity = node_entity.ZWaveNodeEntity(node, zwave_network)
|
||||||
{"receivedCnt": 1, "commandClassId": 133, "sentCnt": 1},
|
with patch.object(entity, "maybe_schedule_update") as mock:
|
||||||
{"receivedCnt": 1, "commandClassId": 115, "sentCnt": 1},
|
mock_zwave.notification(node_id=1024)
|
||||||
{"receivedCnt": 0, "commandClassId": 114, "sentCnt": 0},
|
assert not mock.called
|
||||||
{"receivedCnt": 0, "commandClassId": 112, "sentCnt": 0},
|
|
||||||
{"receivedCnt": 1, "commandClassId": 32, "sentCnt": 1},
|
|
||||||
{"receivedCnt": 0, "commandClassId": 0, "sentCnt": 0},
|
|
||||||
],
|
|
||||||
"receivedUnsolicited": 0,
|
|
||||||
"sentTS": "2017-03-27 15:38:15:620 ",
|
|
||||||
"averageRequestRTT": 2462,
|
|
||||||
"lastResponseRTT": 3679,
|
|
||||||
"retries": 0,
|
|
||||||
"sentFailed": 1,
|
|
||||||
"sentCnt": 7,
|
|
||||||
"quality": 0,
|
|
||||||
"lastRequestRTT": 1591,
|
|
||||||
"lastReceivedMessage": [
|
|
||||||
0,
|
|
||||||
4,
|
|
||||||
0,
|
|
||||||
15,
|
|
||||||
3,
|
|
||||||
32,
|
|
||||||
3,
|
|
||||||
0,
|
|
||||||
221,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
],
|
|
||||||
"receivedDups": 1,
|
|
||||||
"averageResponseRTT": 2443,
|
|
||||||
"receivedTS": "2017-03-27 15:38:19:298 ",
|
|
||||||
}
|
|
||||||
self.entity.node_changed()
|
|
||||||
assert {
|
|
||||||
"node_id": self.node.node_id,
|
|
||||||
"node_name": "Mock Node",
|
|
||||||
"manufacturer_name": "Test Manufacturer",
|
|
||||||
"product_name": "Test Product",
|
|
||||||
"query_stage": "Dynamic",
|
|
||||||
"is_awake": True,
|
|
||||||
"is_ready": False,
|
|
||||||
"is_failed": False,
|
|
||||||
"is_info_received": True,
|
|
||||||
"max_baud_rate": 40000,
|
|
||||||
"is_zwave_plus": False,
|
|
||||||
"battery_level": 42,
|
|
||||||
"wake_up_interval": 1800,
|
|
||||||
"averageRequestRTT": 2462,
|
|
||||||
"averageResponseRTT": 2443,
|
|
||||||
"lastRequestRTT": 1591,
|
|
||||||
"lastResponseRTT": 3679,
|
|
||||||
"receivedCnt": 4,
|
|
||||||
"receivedDups": 1,
|
|
||||||
"receivedTS": "2017-03-27 15:38:19:298 ",
|
|
||||||
"receivedUnsolicited": 0,
|
|
||||||
"retries": 0,
|
|
||||||
"sentCnt": 7,
|
|
||||||
"sentFailed": 1,
|
|
||||||
"sentTS": "2017-03-27 15:38:15:620 ",
|
|
||||||
} == self.entity.device_state_attributes
|
|
||||||
|
|
||||||
self.node.can_wake_up_value = False
|
|
||||||
self.entity.node_changed()
|
|
||||||
|
|
||||||
assert "wake_up_interval" not in self.entity.device_state_attributes
|
async def test_node_changed(hass, mock_openzwave):
|
||||||
|
"""Test node_changed function."""
|
||||||
|
zwave_network = MagicMock()
|
||||||
|
node = mock_zwave.MockNode(
|
||||||
|
query_stage="Dynamic",
|
||||||
|
is_awake=True,
|
||||||
|
is_ready=False,
|
||||||
|
is_failed=False,
|
||||||
|
is_info_received=True,
|
||||||
|
max_baud_rate=40000,
|
||||||
|
is_zwave_plus=False,
|
||||||
|
capabilities=[],
|
||||||
|
neighbors=[],
|
||||||
|
location=None,
|
||||||
|
)
|
||||||
|
entity = node_entity.ZWaveNodeEntity(node, zwave_network)
|
||||||
|
|
||||||
def test_name(self):
|
assert {
|
||||||
"""Test name property."""
|
"node_id": node.node_id,
|
||||||
assert self.entity.name == "Mock Node"
|
"node_name": "Mock Node",
|
||||||
|
"manufacturer_name": "Test Manufacturer",
|
||||||
|
"product_name": "Test Product",
|
||||||
|
} == entity.device_state_attributes
|
||||||
|
|
||||||
def test_state_before_update(self):
|
node.get_values.return_value = {1: mock_zwave.MockValue(data=1800)}
|
||||||
"""Test state before update was called."""
|
zwave_network.manager.getNodeStatistics.return_value = {
|
||||||
assert self.entity.state is None
|
"receivedCnt": 4,
|
||||||
|
"ccData": [
|
||||||
|
{"receivedCnt": 0, "commandClassId": 134, "sentCnt": 0},
|
||||||
|
{"receivedCnt": 1, "commandClassId": 133, "sentCnt": 1},
|
||||||
|
{"receivedCnt": 1, "commandClassId": 115, "sentCnt": 1},
|
||||||
|
{"receivedCnt": 0, "commandClassId": 114, "sentCnt": 0},
|
||||||
|
{"receivedCnt": 0, "commandClassId": 112, "sentCnt": 0},
|
||||||
|
{"receivedCnt": 1, "commandClassId": 32, "sentCnt": 1},
|
||||||
|
{"receivedCnt": 0, "commandClassId": 0, "sentCnt": 0},
|
||||||
|
],
|
||||||
|
"receivedUnsolicited": 0,
|
||||||
|
"sentTS": "2017-03-27 15:38:15:620 ",
|
||||||
|
"averageRequestRTT": 2462,
|
||||||
|
"lastResponseRTT": 3679,
|
||||||
|
"retries": 0,
|
||||||
|
"sentFailed": 1,
|
||||||
|
"sentCnt": 7,
|
||||||
|
"quality": 0,
|
||||||
|
"lastRequestRTT": 1591,
|
||||||
|
"lastReceivedMessage": [
|
||||||
|
0,
|
||||||
|
4,
|
||||||
|
0,
|
||||||
|
15,
|
||||||
|
3,
|
||||||
|
32,
|
||||||
|
3,
|
||||||
|
0,
|
||||||
|
221,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
],
|
||||||
|
"receivedDups": 1,
|
||||||
|
"averageResponseRTT": 2443,
|
||||||
|
"receivedTS": "2017-03-27 15:38:19:298 ",
|
||||||
|
}
|
||||||
|
entity.node_changed()
|
||||||
|
assert {
|
||||||
|
"node_id": node.node_id,
|
||||||
|
"node_name": "Mock Node",
|
||||||
|
"manufacturer_name": "Test Manufacturer",
|
||||||
|
"product_name": "Test Product",
|
||||||
|
"query_stage": "Dynamic",
|
||||||
|
"is_awake": True,
|
||||||
|
"is_ready": False,
|
||||||
|
"is_failed": False,
|
||||||
|
"is_info_received": True,
|
||||||
|
"max_baud_rate": 40000,
|
||||||
|
"is_zwave_plus": False,
|
||||||
|
"battery_level": 42,
|
||||||
|
"wake_up_interval": 1800,
|
||||||
|
"averageRequestRTT": 2462,
|
||||||
|
"averageResponseRTT": 2443,
|
||||||
|
"lastRequestRTT": 1591,
|
||||||
|
"lastResponseRTT": 3679,
|
||||||
|
"receivedCnt": 4,
|
||||||
|
"receivedDups": 1,
|
||||||
|
"receivedTS": "2017-03-27 15:38:19:298 ",
|
||||||
|
"receivedUnsolicited": 0,
|
||||||
|
"retries": 0,
|
||||||
|
"sentCnt": 7,
|
||||||
|
"sentFailed": 1,
|
||||||
|
"sentTS": "2017-03-27 15:38:15:620 ",
|
||||||
|
} == entity.device_state_attributes
|
||||||
|
|
||||||
def test_state_not_ready(self):
|
node.can_wake_up_value = False
|
||||||
"""Test state property."""
|
entity.node_changed()
|
||||||
self.node.is_ready = False
|
|
||||||
self.entity.node_changed()
|
|
||||||
assert self.entity.state == "initializing"
|
|
||||||
|
|
||||||
self.node.is_failed = True
|
assert "wake_up_interval" not in entity.device_state_attributes
|
||||||
self.node.query_stage = "Complete"
|
|
||||||
self.entity.node_changed()
|
|
||||||
assert self.entity.state == "dead"
|
|
||||||
|
|
||||||
self.node.is_failed = False
|
|
||||||
self.node.is_awake = False
|
|
||||||
self.entity.node_changed()
|
|
||||||
assert self.entity.state == "sleeping"
|
|
||||||
|
|
||||||
def test_state_ready(self):
|
async def test_name(hass, mock_openzwave):
|
||||||
"""Test state property."""
|
"""Test name property."""
|
||||||
self.node.query_stage = "Complete"
|
zwave_network = MagicMock()
|
||||||
self.node.is_ready = True
|
node = mock_zwave.MockNode()
|
||||||
self.entity.node_changed()
|
entity = node_entity.ZWaveNodeEntity(node, zwave_network)
|
||||||
assert self.entity.state == "ready"
|
assert entity.name == "Mock Node"
|
||||||
|
|
||||||
self.node.is_failed = True
|
|
||||||
self.entity.node_changed()
|
|
||||||
assert self.entity.state == "dead"
|
|
||||||
|
|
||||||
self.node.is_failed = False
|
async def test_state_before_update(hass, mock_openzwave):
|
||||||
self.node.is_awake = False
|
"""Test state before update was called."""
|
||||||
self.entity.node_changed()
|
zwave_network = MagicMock()
|
||||||
assert self.entity.state == "sleeping"
|
node = mock_zwave.MockNode()
|
||||||
|
entity = node_entity.ZWaveNodeEntity(node, zwave_network)
|
||||||
|
assert entity.state is None
|
||||||
|
|
||||||
def test_not_polled(self):
|
|
||||||
"""Test should_poll property."""
|
|
||||||
assert not self.entity.should_poll
|
|
||||||
|
|
||||||
def test_unique_id(self):
|
async def test_state_not_ready(hass, mock_openzwave):
|
||||||
"""Test unique_id."""
|
"""Test state property."""
|
||||||
assert self.entity.unique_id == "node-567"
|
zwave_network = MagicMock()
|
||||||
|
node = mock_zwave.MockNode(
|
||||||
|
query_stage="Dynamic",
|
||||||
|
is_awake=True,
|
||||||
|
is_ready=False,
|
||||||
|
is_failed=False,
|
||||||
|
is_info_received=True,
|
||||||
|
)
|
||||||
|
entity = node_entity.ZWaveNodeEntity(node, zwave_network)
|
||||||
|
|
||||||
def test_unique_id_missing_data(self):
|
node.is_ready = False
|
||||||
"""Test unique_id."""
|
entity.node_changed()
|
||||||
self.node.manufacturer_name = None
|
assert entity.state == "initializing"
|
||||||
self.node.name = None
|
|
||||||
entity = node_entity.ZWaveNodeEntity(self.node, self.zwave_network)
|
|
||||||
|
|
||||||
assert entity.unique_id is None
|
node.is_failed = True
|
||||||
|
node.query_stage = "Complete"
|
||||||
|
entity.node_changed()
|
||||||
|
assert entity.state == "dead"
|
||||||
|
|
||||||
|
node.is_failed = False
|
||||||
|
node.is_awake = False
|
||||||
|
entity.node_changed()
|
||||||
|
assert entity.state == "sleeping"
|
||||||
|
|
||||||
|
|
||||||
|
async def test_state_ready(hass, mock_openzwave):
|
||||||
|
"""Test state property."""
|
||||||
|
zwave_network = MagicMock()
|
||||||
|
node = mock_zwave.MockNode(
|
||||||
|
query_stage="Dynamic",
|
||||||
|
is_awake=True,
|
||||||
|
is_ready=False,
|
||||||
|
is_failed=False,
|
||||||
|
is_info_received=True,
|
||||||
|
)
|
||||||
|
entity = node_entity.ZWaveNodeEntity(node, zwave_network)
|
||||||
|
|
||||||
|
node.query_stage = "Complete"
|
||||||
|
node.is_ready = True
|
||||||
|
entity.node_changed()
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
assert entity.state == "ready"
|
||||||
|
|
||||||
|
node.is_failed = True
|
||||||
|
entity.node_changed()
|
||||||
|
assert entity.state == "dead"
|
||||||
|
|
||||||
|
node.is_failed = False
|
||||||
|
node.is_awake = False
|
||||||
|
entity.node_changed()
|
||||||
|
assert entity.state == "sleeping"
|
||||||
|
|
||||||
|
|
||||||
|
async def test_not_polled(hass, mock_openzwave):
|
||||||
|
"""Test should_poll property."""
|
||||||
|
zwave_network = MagicMock()
|
||||||
|
node = mock_zwave.MockNode()
|
||||||
|
entity = node_entity.ZWaveNodeEntity(node, zwave_network)
|
||||||
|
assert not entity.should_poll
|
||||||
|
|
||||||
|
|
||||||
|
async def test_unique_id(hass, mock_openzwave):
|
||||||
|
"""Test unique_id."""
|
||||||
|
zwave_network = MagicMock()
|
||||||
|
node = mock_zwave.MockNode()
|
||||||
|
entity = node_entity.ZWaveNodeEntity(node, zwave_network)
|
||||||
|
assert entity.unique_id == "node-567"
|
||||||
|
|
||||||
|
|
||||||
|
async def test_unique_id_missing_data(hass, mock_openzwave):
|
||||||
|
"""Test unique_id."""
|
||||||
|
zwave_network = MagicMock()
|
||||||
|
node = mock_zwave.MockNode()
|
||||||
|
node.manufacturer_name = None
|
||||||
|
node.name = None
|
||||||
|
node.is_ready = False
|
||||||
|
entity = node_entity.ZWaveNodeEntity(node, zwave_network)
|
||||||
|
|
||||||
|
assert entity.unique_id is None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user