Ejemplo n.º 1
0
async def test_handleMessage_onMessage(node: Node):
    # Test catch all message handler
    listener = MagicMock()
    node.addListener(listener)

    listener.onMessage.return_value = True
    assert await node.handleMessage(Basic.Report(value=0), 0) is True

    listener.onMessage.return_value = False
    assert await node.handleMessage(Basic.Report(value=0), 0) is False
Ejemplo n.º 2
0
def test_storageLock(node: Node):
    listener = MagicMock()
    node.addListener(listener)
    node.commandClassUpdated(None)
    listener.nodeUpdated.assert_called_once()

    listener.reset_mock()
    with node.storageLock():
        node.commandClassUpdated(None)
        node.commandClassUpdated(None)
        listener.nodeUpdated.assert_not_called()
    listener.nodeUpdated.assert_called_once()
Ejemplo n.º 3
0
    async def loadNode(self, nodeId: int) -> list:
        """Load a node"""
        if nodeId == self.adapter.nodeId:
            # Ignore ourself
            return []
        nodes = []
        nodeInfo = await self.adapter.getNodeInfo(nodeId)
        node = Node(nodeId, self.adapter, list(nodeInfo.commandClass))
        nodes.append(node)
        node.addListener(self._storage)
        node.basicDeviceClass = nodeInfo.basicDeviceClass
        # node.flirs = ?
        node.genericDeviceClass = nodeInfo.genericDeviceClass
        # node.isFailed = ?
        node.listening = nodeInfo.listening
        node.specificDeviceClass = nodeInfo.specificDeviceClass
        self._nodes[node.nodeId] = node

        if node.supports(COMMAND_CLASS_MULTI_CHANNEL_V2):
            endpoints = await self.adapter.getMultiChannelEndPoints(nodeId)
            for endpoint in range(1, endpoints + 1):
                nodes.append(await self.loadEndPointNode(node, endpoint))
        return nodes