Changeset View
Changeset View
Standalone View
Standalone View
test/functional/feature_notifications.py
Show All 38 Lines | def run_test(self): | ||||
blocks = self.nodes[1].generate(block_count) | blocks = self.nodes[1].generate(block_count) | ||||
# wait at most 10 seconds for expected file size before reading the content | # wait at most 10 seconds for expected file size before reading the content | ||||
wait_until(lambda: os.path.isfile(self.block_filename) and os.stat( | wait_until(lambda: os.path.isfile(self.block_filename) and os.stat( | ||||
self.block_filename).st_size >= (block_count * 65), timeout=10) | self.block_filename).st_size >= (block_count * 65), timeout=10) | ||||
# file content should equal the generated blocks hashes | # file content should equal the generated blocks hashes | ||||
with open(self.block_filename, 'r', encoding="utf-8") as f: | with open(self.block_filename, 'r', encoding="utf-8") as f: | ||||
assert_equal(sorted(blocks), sorted(f.read().splitlines())) | assert_equal(sorted(blocks), sorted(l.strip() | ||||
for l in f.read().splitlines())) | |||||
self.log.info("test -walletnotify") | self.log.info("test -walletnotify") | ||||
# wait at most 10 seconds for expected file size before reading the content | # wait at most 10 seconds for expected file size before reading the content | ||||
wait_until(lambda: os.path.isfile(self.tx_filename) and os.stat( | wait_until(lambda: os.path.isfile(self.tx_filename) and os.stat( | ||||
self.tx_filename).st_size >= (block_count * 65), timeout=10) | self.tx_filename).st_size >= (block_count * 65), timeout=10) | ||||
# file content should equal the generated transaction hashes | # file content should equal the generated transaction hashes | ||||
txids_rpc = list( | txids_rpc = list( | ||||
map(lambda t: t['txid'], self.nodes[1].listtransactions("*", block_count))) | map(lambda t: t['txid'], self.nodes[1].listtransactions("*", block_count))) | ||||
with open(self.tx_filename, 'r', encoding="ascii") as f: | with open(self.tx_filename, 'r', encoding="ascii") as f: | ||||
assert_equal(sorted(txids_rpc), sorted(f.read().splitlines())) | assert_equal(sorted(txids_rpc), sorted(l.strip() | ||||
for l in f.read().splitlines())) | |||||
os.remove(self.tx_filename) | os.remove(self.tx_filename) | ||||
self.log.info("test -walletnotify after rescan") | self.log.info("test -walletnotify after rescan") | ||||
# restart node to rescan to force wallet notifications | # restart node to rescan to force wallet notifications | ||||
self.restart_node(1) | self.restart_node(1) | ||||
connect_nodes_bi(self.nodes[0], self.nodes[1]) | connect_nodes_bi(self.nodes[0], self.nodes[1]) | ||||
wait_until(lambda: os.path.isfile(self.tx_filename) and os.stat( | wait_until(lambda: os.path.isfile(self.tx_filename) and os.stat( | ||||
self.tx_filename).st_size >= (block_count * 65), timeout=10) | self.tx_filename).st_size >= (block_count * 65), timeout=10) | ||||
# file content should equal the generated transaction hashes | # file content should equal the generated transaction hashes | ||||
txids_rpc = list( | txids_rpc = list( | ||||
map(lambda t: t['txid'], self.nodes[1].listtransactions("*", block_count))) | map(lambda t: t['txid'], self.nodes[1].listtransactions("*", block_count))) | ||||
with open(self.tx_filename, 'r', encoding="ascii") as f: | with open(self.tx_filename, 'r', encoding="ascii") as f: | ||||
assert_equal(sorted(txids_rpc), sorted(f.read().splitlines())) | assert_equal(sorted(txids_rpc), sorted(l.strip() | ||||
for l in f.read().splitlines())) | |||||
# Create an invalid chain and ensure the node warns. | # Create an invalid chain and ensure the node warns. | ||||
self.log.info("test -alertnotify for forked chain") | self.log.info("test -alertnotify for forked chain") | ||||
fork_block = self.nodes[0].getbestblockhash() | fork_block = self.nodes[0].getbestblockhash() | ||||
self.nodes[0].generate(1) | self.nodes[0].generate(1) | ||||
invalid_block = self.nodes[0].getbestblockhash() | invalid_block = self.nodes[0].getbestblockhash() | ||||
self.nodes[0].generate(7) | self.nodes[0].generate(7) | ||||
Show All 14 Lines |