def testTestNodeDelay(tdir_for_func): nodeNames = {"testA", "testB"} with TestNodeSet(names=nodeNames, tmpdir=tdir_for_func) as nodes: nodeA = nodes.getNode("testA") nodeB = nodes.getNode("testB") with Looper(nodes) as looper: for n in nodes: n.startKeySharing() logging.debug("connect") looper.run(checkNodesConnected(nodes)) logging.debug("send one message, without delay") msg = randomMsg() looper.run(sendMsgAndCheck(nodes, nodeA, nodeB, msg, 1)) logging.debug( "set delay, then send another message and find that it doesn't arrive") msg = randomMsg() nodeB.nodeIbStasher.delay(delayerMsgTuple(4, type(msg), nodeA.name)) with pytest.raises(AssertionError): looper.run(sendMsgAndCheck(nodes, nodeA, nodeB, msg, 3)) logging.debug( "but then find that it arrives after the delay duration has passed") looper.run(sendMsgAndCheck(nodes, nodeA, nodeB, msg, 2)) logging.debug( "reset the delay, and find another message comes quickly") nodeB.nodeIbStasher.resetDelays() msg = randomMsg() looper.run(sendMsgAndCheck(nodes, nodeA, nodeB, msg, 1))
def testMsgSendingTime(pool, nodeReg): nodeNames = list(nodeReg.keys()) msg = randomMsg() pool.looper.run( sendMsgAndCheck(pool.nodeset, nodeNames[0], nodeNames[1], msg, 1))