From 359d06757249b34b36688eaef31e7626a46bd52a Mon Sep 17 00:00:00 2001 From: John Newbery Date: Wed, 22 Nov 2017 12:31:58 -0500 Subject: [tests] Fix flake8 warnings in invalidtxrequest --- test/functional/p2p_invalid_tx.py | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) (limited to 'test/functional/p2p_invalid_tx.py') diff --git a/test/functional/p2p_invalid_tx.py b/test/functional/p2p_invalid_tx.py index 9c1100e070..66505c1ffb 100755 --- a/test/functional/p2p_invalid_tx.py +++ b/test/functional/p2p_invalid_tx.py @@ -4,21 +4,17 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test node responses to invalid transactions. -In this test we connect to one node over p2p, and test tx requests. -""" - -from test_framework.test_framework import ComparisonTestFramework -from test_framework.comptool import TestManager, TestInstance, RejectResult -from test_framework.blocktools import * +In this test we connect to one node over p2p, and test tx requests.""" import time +from test_framework.blocktools import create_block, create_coinbase, create_transaction +from test_framework.comptool import RejectResult, TestInstance, TestManager +from test_framework.messages import COIN +from test_framework.mininode import network_thread_start +from test_framework.test_framework import ComparisonTestFramework - -# Use the ComparisonTestFramework with 1 node: only use --testbinary. class InvalidTxRequestTest(ComparisonTestFramework): - ''' Can either run this test as 1 node with expected answers, or two and compare them. - Change the "outcome" variable from each TestInstance object to only do the comparison. ''' def set_test_params(self): self.num_nodes = 1 self.setup_clean_chain = True @@ -32,13 +28,10 @@ class InvalidTxRequestTest(ComparisonTestFramework): test.run() def get_tests(self): - if self.tip is None: - self.tip = int("0x" + self.nodes[0].getbestblockhash(), 0) - self.block_time = int(time.time())+1 + self.tip = int("0x" + self.nodes[0].getbestblockhash(), 0) + self.block_time = int(time.time()) + 1 - ''' - Create a new block with an anyone-can-spend coinbase - ''' + self.log.info("Create a new block with an anyone-can-spend coinbase.") height = 1 block = create_block(self.tip, create_coinbase(height), self.block_time) self.block_time += 1 @@ -49,9 +42,7 @@ class InvalidTxRequestTest(ComparisonTestFramework): height += 1 yield TestInstance([[block, True]]) - ''' - Now we need that block to mature so we can spend the coinbase. - ''' + self.log.info("Mature the block.") test = TestInstance(sync_every_block=False) for i in range(100): block = create_block(self.tip, create_coinbase(height), self.block_time) -- cgit v1.2.3 From 95e2e9af124595aae4801fc9813ee1c294d404cd Mon Sep 17 00:00:00 2001 From: John Newbery Date: Mon, 10 Apr 2017 09:01:22 -0400 Subject: [tests] Change invalidtxrequest to use BitcoinTestFramework --- test/functional/p2p_invalid_tx.py | 51 ++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 30 deletions(-) (limited to 'test/functional/p2p_invalid_tx.py') diff --git a/test/functional/p2p_invalid_tx.py b/test/functional/p2p_invalid_tx.py index 66505c1ffb..64fada38e2 100755 --- a/test/functional/p2p_invalid_tx.py +++ b/test/functional/p2p_invalid_tx.py @@ -5,58 +5,49 @@ """Test node responses to invalid transactions. In this test we connect to one node over p2p, and test tx requests.""" -import time - from test_framework.blocktools import create_block, create_coinbase, create_transaction -from test_framework.comptool import RejectResult, TestInstance, TestManager from test_framework.messages import COIN -from test_framework.mininode import network_thread_start -from test_framework.test_framework import ComparisonTestFramework +from test_framework.mininode import network_thread_start, P2PDataStore +from test_framework.test_framework import BitcoinTestFramework -class InvalidTxRequestTest(ComparisonTestFramework): +class InvalidTxRequestTest(BitcoinTestFramework): def set_test_params(self): self.num_nodes = 1 self.setup_clean_chain = True + self.extra_args = [["-whitelist=127.0.0.1"]] def run_test(self): - test = TestManager(self, self.options.tmpdir) - test.add_all_connections(self.nodes) - self.tip = None - self.block_time = None + # Add p2p connection to node0 + node = self.nodes[0] # convenience reference to the node + node.add_p2p_connection(P2PDataStore()) + network_thread_start() - test.run() + node.p2p.wait_for_verack() - def get_tests(self): - self.tip = int("0x" + self.nodes[0].getbestblockhash(), 0) - self.block_time = int(time.time()) + 1 + best_block = self.nodes[0].getbestblockhash() + tip = int(best_block, 16) + best_block_time = self.nodes[0].getblock(best_block)['time'] + block_time = best_block_time + 1 self.log.info("Create a new block with an anyone-can-spend coinbase.") height = 1 - block = create_block(self.tip, create_coinbase(height), self.block_time) - self.block_time += 1 + block = create_block(tip, create_coinbase(height), block_time) + block_time += 1 block.solve() # Save the coinbase for later - self.block1 = block - self.tip = block.sha256 + block1 = block + tip = block.sha256 height += 1 - yield TestInstance([[block, True]]) + node.p2p.send_blocks_and_test([block], node, success=True) self.log.info("Mature the block.") - test = TestInstance(sync_every_block=False) - for i in range(100): - block = create_block(self.tip, create_coinbase(height), self.block_time) - block.solve() - self.tip = block.sha256 - self.block_time += 1 - test.blocks_and_transactions.append([block, True]) - height += 1 - yield test + self.nodes[0].generate(100) # b'\x64' is OP_NOTIF # Transaction will be rejected with code 16 (REJECT_INVALID) - tx1 = create_transaction(self.block1.vtx[0], 0, b'\x64', 50 * COIN - 12000) - yield TestInstance([[tx1, RejectResult(16, b'mandatory-script-verify-flag-failed')]]) + tx1 = create_transaction(block1.vtx[0], 0, b'\x64', 50 * COIN - 12000) + node.p2p.send_txs_and_test([tx1], node, success=False, reject_code=16, reject_reason=b'mandatory-script-verify-flag-failed (Invalid OP_IF construction)') # TODO: test further transactions... -- cgit v1.2.3