async def sendMessageAndCheckDelivery(sender: Node, reciever: Node, msg: Optional[Tuple]=None, method=None, customTimeout=None):
    '\n    Sends message from one node to another and checks that it was delivered\n\n    :param sender: sender\n    :param reciever: recepient\n    :param msg: optional message - by default random one generated\n    :param customTimeout:\n    :return:\n    '
    logger.debug('Sending msg from {} to {}'.format(sender.name, reciever.name))
    msg = (msg if msg else randomMsg())
    rid = sender.nodestack.getRemote(reciever.name).uid
    sender.nodestack.send(msg, rid)
    timeout = (customTimeout or waits.expectedNodeToNodeMessageDeliveryTime())
    (await eventually(checkMessageReceived, msg, reciever, method, retryWait=0.1, timeout=timeout, ratchetSteps=10))
Sends message from one node to another and checks that it was delivered

:param sender: sender
:param reciever: recepient
:param msg: optional message - by default random one generated
:param customTimeout:
:return:
async def sendMessageAndCheckDelivery(sender: Node, reciever: Node, msg: Optional[Tuple]=None, method=None, customTimeout=None):
    '\n    Sends message from one node to another and checks that it was delivered\n\n    :param sender: sender\n    :param reciever: recepient\n    :param msg: optional message - by default random one generated\n    :param customTimeout:\n    :return:\n    '
    logger.debug('Sending msg from {} to {}'.format(sender.name, reciever.name))
    msg = (msg if msg else randomMsg())
    rid = sender.nodestack.getRemote(reciever.name).uid
    sender.nodestack.send(msg, rid)
    timeout = (customTimeout or waits.expectedNodeToNodeMessageDeliveryTime())
    (await eventually(checkMessageReceived, msg, reciever, method, retryWait=0.1, timeout=timeout, ratchetSteps=10))