async def test_application_version(opp, mock_openzwave): """Test application version.""" mock_receivers = {} signal_mocks = [ mock_zwave.MockNetwork.SIGNAL_VALUE_CHANGED, mock_zwave.MockNetwork.SIGNAL_VALUE_ADDED, ] def mock_connect(receiver, signal, *args, **kwargs): if signal in signal_mocks: mock_receivers[signal] = receiver node = mock_zwave.MockNode(node_id=11) with patch("pydispatch.dispatcher.connect", new=mock_connect): entity = node_entity.ZWaveNodeEntity(node, mock_openzwave) for signal_mock in signal_mocks: assert signal_mock in mock_receivers.keys() events = [] def listener(event): events.append(event) # Make sure application version isn't set before assert (node_entity.ATTR_APPLICATION_VERSION not in entity.device_state_attributes.keys()) # Add entity to opp entity.opp = opp entity.entity_id = "zwave.mock_node" # Fire off an added value value = mock_zwave.MockValue( command_class=const.COMMAND_CLASS_VERSION, label="Application Version", data="5.10", ) opp.async_add_job( mock_receivers[mock_zwave.MockNetwork.SIGNAL_VALUE_ADDED], node, value) await opp.async_block_till_done() assert (entity.device_state_attributes[ node_entity.ATTR_APPLICATION_VERSION] == "5.10") # Fire off a changed value = mock_zwave.MockValue( command_class=const.COMMAND_CLASS_VERSION, label="Application Version", data="4.14", ) opp.async_add_job( mock_receivers[mock_zwave.MockNetwork.SIGNAL_VALUE_CHANGED], node, value) await opp.async_block_till_done() assert (entity.device_state_attributes[ node_entity.ATTR_APPLICATION_VERSION] == "4.14")
async def test_central_scene_activated(hass, mock_openzwave): """Test central scene activated event.""" mock_receivers = [] def mock_connect(receiver, signal, *args, **kwargs): if signal == mock_zwave.MockNetwork.SIGNAL_VALUE_CHANGED: mock_receivers.append(receiver) node = mock_zwave.MockNode(node_id=11) with patch("pydispatch.dispatcher.connect", new=mock_connect): entity = node_entity.ZWaveNodeEntity(node, mock_openzwave) assert len(mock_receivers) == 1 events = [] def listener(event): events.append(event) hass.bus.async_listen(const.EVENT_SCENE_ACTIVATED, listener) # Test event before entity added to hass scene_id = 1 scene_data = 3 value = mock_zwave.MockValue( command_class=const.COMMAND_CLASS_CENTRAL_SCENE, index=scene_id, data=scene_data) hass.async_add_job(mock_receivers[0], node, value) await hass.async_block_till_done() assert len(events) == 0 # Add entity to hass entity.hass = hass entity.entity_id = "zwave.mock_node" scene_id = 1 scene_data = 3 value = mock_zwave.MockValue( command_class=const.COMMAND_CLASS_CENTRAL_SCENE, index=scene_id, data=scene_data) hass.async_add_job(mock_receivers[0], node, value) await hass.async_block_till_done() assert len(events) == 1 assert events[0].data[ATTR_ENTITY_ID] == "zwave.mock_node" assert events[0].data[const.ATTR_NODE_ID] == 11 assert events[0].data[const.ATTR_SCENE_ID] == scene_id assert events[0].data[const.ATTR_SCENE_DATA] == scene_data
def test_node_changed(self): """Test node_changed function.""" self.assertEqual({'node_id': self.node.node_id}, self.entity.device_state_attributes) self.node.get_values.return_value = { 1: mock_zwave.MockValue(data=1800) } self.entity.node_changed() self.assertEqual( { 'node_id': self.node.node_id, '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 }, self.entity.device_state_attributes) self.node.can_wake_up_value = False self.entity.node_changed() self.assertNotIn('wake_up_interval', self.entity.device_state_attributes)
async def test_network_node_changed_from_value(hass, mock_openzwave): """Test for network_node_changed.""" 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 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) } self.zwave_network.manager.getNodeStatistics.return_value = { "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 ", } 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
def test_network_node_changed_from_value(self): """Test for network_node_changed.""" value = mock_zwave.MockValue(node=self.node) with patch.object(self.entity, "maybe_schedule_update") as mock: mock_zwave.value_changed(value) 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) } self.zwave_network.manager.getNodeStatistics.return_value = { "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 "} 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) assert { "node_id": node.node_id, "node_name": "Mock Node", "manufacturer_name": "Test Manufacturer", "product_name": "Test Product", } == entity.device_state_attributes node.get_values.return_value = {1: mock_zwave.MockValue(data=1800)} zwave_network.manager.getNodeStatistics.return_value = { "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 node.can_wake_up_value = False entity.node_changed() assert "wake_up_interval" not in entity.device_state_attributes