Browse Source

[tests] fix wait_for_inv()

tags/v0.15.1
John Newbery 4 years ago
parent
commit
3e3c22f09d
2 changed files with 8 additions and 3 deletions
  1. 2
    2
      test/functional/p2p-segwit.py
  2. 6
    1
      test/functional/test_framework/mininode.py

+ 2
- 2
test/functional/p2p-segwit.py View File

@@ -926,9 +926,9 @@ class SegWitTest(BitcoinTestFramework):
tx3.wit.vtxinwit[0].scriptWitness.stack = [ witness_program ]
# Also check that old_node gets a tx announcement, even though this is
# a witness transaction.
self.old_node.wait_for_inv(CInv(1, tx2.sha256)) # wait until tx2 was inv'ed
self.old_node.wait_for_inv([CInv(1, tx2.sha256)]) # wait until tx2 was inv'ed
self.test_node.test_transaction_acceptance(tx3, with_witness=True, accepted=True)
self.old_node.wait_for_inv(CInv(1, tx3.sha256))
self.old_node.wait_for_inv([CInv(1, tx3.sha256)])

# Test that getrawtransaction returns correct witness information
# hash, size, vsize

+ 6
- 1
test/functional/test_framework/mininode.py View File

@@ -1604,7 +1604,12 @@ class NodeConnCB(object):
assert wait_until(test_function, timeout=timeout)

def wait_for_inv(self, expected_inv, timeout=60):
test_function = lambda: self.last_message.get("inv") and self.last_message["inv"] != expected_inv
"""Waits for an INV message and checks that the first inv object in the message was as expected."""
if len(expected_inv) > 1:
raise NotImplementedError("wait_for_inv() will only verify the first inv object")
test_function = lambda: self.last_message.get("inv") and \
self.last_message["inv"].inv[0].type == expected_inv[0].type and \
self.last_message["inv"].inv[0].hash == expected_inv[0].hash
assert wait_until(test_function, timeout=timeout)

def wait_for_verack(self, timeout=60):

Loading…
Cancel
Save