diff options
| author | MarcoFalke <[email protected]> | 2018-08-13 08:24:43 -0400 |
|---|---|---|
| committer | MarcoFalke <[email protected]> | 2018-08-13 08:28:06 -0400 |
| commit | bffb35f876572737b175aa3620bbf3e62c20f444 (patch) | |
| tree | 41147336fb1608c3265cb09817a41dffcf9059bc | |
| parent | Merge #13905: docs: fixed bitcoin-cli -help output for help2man (diff) | |
| parent | tests: Use explicit imports (diff) | |
| download | discoin-bffb35f876572737b175aa3620bbf3e62c20f444.tar.xz discoin-bffb35f876572737b175aa3620bbf3e62c20f444.zip | |
Merge #13054: tests: Enable automatic detection of undefined names in Python tests scripts. Remove wildcard imports.
68400d8b96 tests: Use explicit imports (practicalswift)
Pull request description:
Enable automatic detection of undefined names in Python tests scripts. Remove wildcard imports.
Wildcard imports make it unclear which names are present in the namespace, confusing both readers and many automated tools.
An additional benefit of not using wildcard imports in tests scripts is that readers of a test script then can infer the rough testing scope just by looking at the imports.
Before this commit:
```
$ contrib/devtools/lint-python.sh | head -10
./test/functional/feature_rbf.py:8:1: F403 'from test_framework.util import *' used; unable to detect undefined names
./test/functional/feature_rbf.py:9:1: F403 'from test_framework.script import *' used; unable to detect undefined names
./test/functional/feature_rbf.py:10:1: F403 'from test_framework.mininode import *' used; unable to detect undefined names
./test/functional/feature_rbf.py:15:12: F405 bytes_to_hex_str may be undefined, or defined from star imports: test_framework.mininode, test_framework.script, test_framework.util
./test/functional/feature_rbf.py:17:58: F405 CScript may be undefined, or defined from star imports: test_framework.mininode, test_framework.script, test_framework.util
./test/functional/feature_rbf.py:25:13: F405 COIN may be undefined, or defined from star imports: test_framework.mininode, test_framework.script, test_framework.util
./test/functional/feature_rbf.py:26:31: F405 satoshi_round may be undefined, or defined from star imports: test_framework.mininode, test_framework.script, test_framework.util
./test/functional/feature_rbf.py:26:60: F405 COIN may be undefined, or defined from star imports: test_framework.mininode, test_framework.script, test_framework.util
./test/functional/feature_rbf.py:30:41: F405 satoshi_round may be undefined, or defined from star imports: test_framework.mininode, test_framework.script, test_framework.util
./test/functional/feature_rbf.py:30:68: F405 COIN may be undefined, or defined from star imports: test_framework.mininode, test_framework.script, test_framework.util
$
```
After this commit:
```
$ contrib/devtools/lint-python.sh | head -10
$
```
Tree-SHA512: 3f826d39cffb6438388e5efcb20a9622ff8238247e882d68f7b38609877421b2a8e10e9229575f8eb6a8fa42dec4256986692e92922c86171f750a0e887438d9
50 files changed, 143 insertions, 94 deletions
diff --git a/test/functional/feature_bip68_sequence.py b/test/functional/feature_bip68_sequence.py index 3a7e39f7f..4a9445f50 100755 --- a/test/functional/feature_bip68_sequence.py +++ b/test/functional/feature_bip68_sequence.py @@ -4,9 +4,13 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test BIP68 implementation.""" +import time + +from test_framework.blocktools import create_block, create_coinbase, add_witness_commitment +from test_framework.messages import COIN, COutPoint, CTransaction, CTxIn, CTxOut, FromHex, ToHex +from test_framework.script import CScript from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * -from test_framework.blocktools import * +from test_framework.util import assert_equal, assert_greater_than, assert_raises_rpc_error, bytes_to_hex_str, get_bip9_status, satoshi_round, sync_blocks SEQUENCE_LOCKTIME_DISABLE_FLAG = (1<<31) SEQUENCE_LOCKTIME_TYPE_FLAG = (1<<22) # this means use time (0 means height) diff --git a/test/functional/feature_cltv.py b/test/functional/feature_cltv.py index 071ffbd42..846029183 100755 --- a/test/functional/feature_cltv.py +++ b/test/functional/feature_cltv.py @@ -8,11 +8,13 @@ Test that the CHECKLOCKTIMEVERIFY soft-fork activates at (regtest) block height 1351. """ -from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * -from test_framework.mininode import * from test_framework.blocktools import create_coinbase, create_block, create_transaction +from test_framework.messages import CTransaction, msg_block, ToHex +from test_framework.mininode import mininode_lock, P2PInterface from test_framework.script import CScript, OP_1NEGATE, OP_CHECKLOCKTIMEVERIFY, OP_DROP, CScriptNum +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import assert_equal, bytes_to_hex_str, hex_str_to_bytes, wait_until + from io import BytesIO CLTV_HEIGHT = 1351 diff --git a/test/functional/feature_dbcrash.py b/test/functional/feature_dbcrash.py index a0535b6cd..d612dbe2b 100755 --- a/test/functional/feature_dbcrash.py +++ b/test/functional/feature_dbcrash.py @@ -31,10 +31,9 @@ import random import sys import time -from test_framework.mininode import * -from test_framework.script import * +from test_framework.messages import COIN, COutPoint, CTransaction, CTxIn, CTxOut, ToHex from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal, create_confirmed_utxos, hex_str_to_bytes HTTP_DISCONNECT_ERRORS = [http.client.CannotSendRequest] try: diff --git a/test/functional/feature_dersig.py b/test/functional/feature_dersig.py index 3a9639afc..53e94c436 100755 --- a/test/functional/feature_dersig.py +++ b/test/functional/feature_dersig.py @@ -7,11 +7,12 @@ Test that the DERSIG soft-fork activates at (regtest) height 1251. """ -from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * -from test_framework.mininode import * from test_framework.blocktools import create_coinbase, create_block, create_transaction +from test_framework.messages import msg_block +from test_framework.mininode import mininode_lock, P2PInterface from test_framework.script import CScript +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import assert_equal, bytes_to_hex_str, wait_until DERSIG_HEIGHT = 1251 diff --git a/test/functional/feature_fee_estimation.py b/test/functional/feature_fee_estimation.py index 473db5b3d..709910f2e 100755 --- a/test/functional/feature_fee_estimation.py +++ b/test/functional/feature_fee_estimation.py @@ -6,7 +6,7 @@ from decimal import Decimal import random -from test_framework.mininode import CTransaction, CTxIn, CTxOut, COutPoint, ToHex, COIN +from test_framework.messages import CTransaction, CTxIn, CTxOut, COutPoint, ToHex, COIN from test_framework.script import CScript, OP_1, OP_DROP, OP_2, OP_HASH160, OP_EQUAL, hash160, OP_TRUE from test_framework.test_framework import BitcoinTestFramework from test_framework.util import ( diff --git a/test/functional/feature_maxuploadtarget.py b/test/functional/feature_maxuploadtarget.py index 88282e9fa..a81ebb422 100755 --- a/test/functional/feature_maxuploadtarget.py +++ b/test/functional/feature_maxuploadtarget.py @@ -13,9 +13,10 @@ if uploadtarget has been reached. from collections import defaultdict import time -from test_framework.mininode import * +from test_framework.messages import CInv, msg_getdata +from test_framework.mininode import P2PInterface from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal, mine_large_block class TestP2PConn(P2PInterface): def __init__(self): diff --git a/test/functional/feature_nulldummy.py b/test/functional/feature_nulldummy.py index 179e1c897..9d1805ec2 100755 --- a/test/functional/feature_nulldummy.py +++ b/test/functional/feature_nulldummy.py @@ -13,11 +13,12 @@ Generate 427 more blocks. [Policy/Consensus] Check that the new NULLDUMMY rules are enforced on the 432nd block. """ -from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * -from test_framework.messages import CTransaction from test_framework.blocktools import create_coinbase, create_block, create_transaction, add_witness_commitment +from test_framework.messages import CTransaction from test_framework.script import CScript +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import assert_equal, assert_raises_rpc_error, bytes_to_hex_str + import time NULLDUMMY_ERROR = "non-mandatory-script-verify-flag (Dummy CHECKMULTISIG argument must be zero) (code 64)" diff --git a/test/functional/feature_pruning.py b/test/functional/feature_pruning.py index 7b5ea4564..c8f4b7f8b 100755 --- a/test/functional/feature_pruning.py +++ b/test/functional/feature_pruning.py @@ -10,7 +10,8 @@ This test takes 30 mins or more (up to 2 hours) """ from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal, assert_greater_than, assert_raises_rpc_error, connect_nodes, mine_large_block, sync_blocks, wait_until + import os MIN_BLOCKS_TO_KEEP = 288 diff --git a/test/functional/feature_rbf.py b/test/functional/feature_rbf.py index 8b0e28365..6105da810 100755 --- a/test/functional/feature_rbf.py +++ b/test/functional/feature_rbf.py @@ -4,10 +4,12 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test the RBF code.""" +from decimal import Decimal + +from test_framework.messages import COIN, COutPoint, CTransaction, CTxIn, CTxOut +from test_framework.script import CScript, OP_DROP from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * -from test_framework.script import * -from test_framework.mininode import * +from test_framework.util import assert_equal, assert_raises_rpc_error, bytes_to_hex_str, satoshi_round MAX_REPLACEMENT_LIMIT = 100 diff --git a/test/functional/feature_segwit.py b/test/functional/feature_segwit.py index ccc453930..13d7758e1 100755 --- a/test/functional/feature_segwit.py +++ b/test/functional/feature_segwit.py @@ -4,19 +4,23 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test the SegWit changeover logic.""" +from decimal import Decimal + from test_framework.address import ( + key_to_p2pkh, key_to_p2sh_p2wpkh, key_to_p2wpkh, program_to_witness, + script_to_p2sh, script_to_p2sh_p2wsh, script_to_p2wsh, ) from test_framework.blocktools import witness_script, send_to_witness -from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * -from test_framework.mininode import sha256, CTransaction, CTxIn, COutPoint, CTxOut, COIN, ToHex, FromHex -from test_framework.address import script_to_p2sh, key_to_p2pkh +from test_framework.messages import COIN, COutPoint, CTransaction, CTxIn, CTxOut, FromHex, sha256, ToHex from test_framework.script import CScript, OP_HASH160, OP_CHECKSIG, OP_0, hash160, OP_EQUAL, OP_DUP, OP_EQUALVERIFY, OP_1, OP_2, OP_CHECKMULTISIG, OP_TRUE, OP_DROP +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import assert_equal, assert_raises_rpc_error, bytes_to_hex_str, connect_nodes, hex_str_to_bytes, sync_blocks, try_rpc + from io import BytesIO NODE_0 = 0 diff --git a/test/functional/interface_http.py b/test/functional/interface_http.py index de45d72d6..e4b86f9e1 100755 --- a/test/functional/interface_http.py +++ b/test/functional/interface_http.py @@ -5,7 +5,7 @@ """Test the RPC HTTP basics.""" from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal, str_to_b64str import http.client import urllib.parse diff --git a/test/functional/interface_zmq.py b/test/functional/interface_zmq.py index f1dda0c7d..72de69625 100755 --- a/test/functional/interface_zmq.py +++ b/test/functional/interface_zmq.py @@ -7,7 +7,7 @@ import struct from test_framework.test_framework import ( BitcoinTestFramework, skip_if_no_bitcoind_zmq, skip_if_no_py3_zmq) -from test_framework.mininode import CTransaction +from test_framework.messages import CTransaction from test_framework.util import (assert_equal, bytes_to_hex_str, hash256, diff --git a/test/functional/mempool_limit.py b/test/functional/mempool_limit.py index 5c2249e7f..55422b67d 100755 --- a/test/functional/mempool_limit.py +++ b/test/functional/mempool_limit.py @@ -4,8 +4,10 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test mempool limiting together/eviction with the wallet.""" +from decimal import Decimal + from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal, assert_greater_than, assert_raises_rpc_error, create_confirmed_utxos, create_lots_of_big_transactions, gen_return_txouts class MempoolLimitTest(BitcoinTestFramework): def set_test_params(self): diff --git a/test/functional/mempool_packages.py b/test/functional/mempool_packages.py index 7220f0c98..da254181f 100755 --- a/test/functional/mempool_packages.py +++ b/test/functional/mempool_packages.py @@ -4,9 +4,11 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test descendant package tracking code.""" +from decimal import Decimal + +from test_framework.messages import COIN from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * -from test_framework.mininode import COIN +from test_framework.util import assert_equal, assert_raises_rpc_error, satoshi_round, sync_blocks, sync_mempools MAX_ANCESTORS = 25 MAX_DESCENDANTS = 25 diff --git a/test/functional/mempool_persist.py b/test/functional/mempool_persist.py index ad331fb7f..6e5f89efb 100755 --- a/test/functional/mempool_persist.py +++ b/test/functional/mempool_persist.py @@ -35,11 +35,12 @@ Test is as follows: node1 can't write to disk. """ +from decimal import Decimal import os import time from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal, assert_raises_rpc_error, wait_until class MempoolPersistTest(BitcoinTestFramework): def set_test_params(self): diff --git a/test/functional/mempool_reorg.py b/test/functional/mempool_reorg.py index 76ed21566..faa00d56c 100755 --- a/test/functional/mempool_reorg.py +++ b/test/functional/mempool_reorg.py @@ -8,9 +8,9 @@ Test re-org scenarios with a mempool that contains transactions that spend (directly or indirectly) coinbase transactions. """ -from test_framework.test_framework import BitcoinTestFramework from test_framework.blocktools import create_raw_transaction -from test_framework.util import * +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import assert_equal, assert_raises_rpc_error class MempoolCoinbaseTest(BitcoinTestFramework): diff --git a/test/functional/mempool_resurrect.py b/test/functional/mempool_resurrect.py index 37e19ea53..23939f0be 100755 --- a/test/functional/mempool_resurrect.py +++ b/test/functional/mempool_resurrect.py @@ -4,9 +4,9 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test resurrection of mined transactions when the blockchain is re-organized.""" -from test_framework.test_framework import BitcoinTestFramework from test_framework.blocktools import create_raw_transaction -from test_framework.util import * +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import assert_equal class MempoolCoinbaseTest(BitcoinTestFramework): diff --git a/test/functional/mempool_spend_coinbase.py b/test/functional/mempool_spend_coinbase.py index 880045262..ce3bc3b7e 100755 --- a/test/functional/mempool_spend_coinbase.py +++ b/test/functional/mempool_spend_coinbase.py @@ -14,7 +14,7 @@ but less mature coinbase spends are NOT. from test_framework.test_framework import BitcoinTestFramework from test_framework.blocktools import create_raw_transaction -from test_framework.util import * +from test_framework.util import assert_equal, assert_raises_rpc_error class MempoolSpendCoinbaseTest(BitcoinTestFramework): diff --git a/test/functional/mining_basic.py b/test/functional/mining_basic.py index bd24b37f1..fa20a2d2f 100755 --- a/test/functional/mining_basic.py +++ b/test/functional/mining_basic.py @@ -13,7 +13,7 @@ from binascii import b2a_hex from decimal import Decimal from test_framework.blocktools import create_coinbase -from test_framework.mininode import CBlock +from test_framework.messages import CBlock from test_framework.test_framework import BitcoinTestFramework from test_framework.util import assert_equal, assert_raises_rpc_error diff --git a/test/functional/mining_getblocktemplate_longpoll.py b/test/functional/mining_getblocktemplate_longpoll.py index 3ae5c12aa..2bcbe8db7 100755 --- a/test/functional/mining_getblocktemplate_longpoll.py +++ b/test/functional/mining_getblocktemplate_longpoll.py @@ -4,8 +4,10 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test longpolling with getblocktemplate.""" +from decimal import Decimal + from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import get_rpc_proxy, random_transaction import threading diff --git a/test/functional/mining_prioritisetransaction.py b/test/functional/mining_prioritisetransaction.py index 8e13e06b8..bb0cc082a 100755 --- a/test/functional/mining_prioritisetransaction.py +++ b/test/functional/mining_prioritisetransaction.py @@ -4,9 +4,11 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test the prioritisetransaction mining RPC.""" +import time + +from test_framework.messages import COIN, MAX_BLOCK_BASE_SIZE from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * -from test_framework.mininode import COIN, MAX_BLOCK_BASE_SIZE +from test_framework.util import assert_equal, assert_raises_rpc_error, create_confirmed_utxos, create_lots_of_big_transactions, gen_return_txouts class PrioritiseTransactionTest(BitcoinTestFramework): def set_test_params(self): diff --git a/test/functional/p2p_compactblocks.py b/test/functional/p2p_compactblocks.py index 334e4048d..5cec5dc6f 100755 --- a/test/functional/p2p_compactblocks.py +++ b/test/functional/p2p_compactblocks.py @@ -8,12 +8,15 @@ Version 1 compact blocks are pre-segwit (txids) Version 2 compact blocks are post-segwit (wtxids) """ -from test_framework.mininode import * -from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from decimal import Decimal +import random + from test_framework.blocktools import create_block, create_coinbase, add_witness_commitment +from test_framework.messages import BlockTransactions, BlockTransactionsRequest, calculate_shortid, CBlock, CBlockHeader, CInv, COutPoint, CTransaction, CTxIn, CTxInWitness, CTxOut, FromHex, HeaderAndShortIDs, msg_block, msg_blocktxn, msg_cmpctblock, msg_getblocktxn, msg_getdata, msg_getheaders, msg_headers, msg_inv, msg_sendcmpct, msg_sendheaders, msg_tx, msg_witness_block, msg_witness_blocktxn, MSG_WITNESS_FLAG, NODE_NETWORK, NODE_WITNESS, P2PHeaderAndShortIDs, PrefilledTransaction, ser_uint256, ToHex +from test_framework.mininode import mininode_lock, P2PInterface from test_framework.script import CScript, OP_TRUE, OP_DROP - +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import assert_equal, get_bip9_status, satoshi_round, sync_blocks, wait_until # TestP2PConn: A peer we use to send messages to bitcoind, and store responses. class TestP2PConn(P2PInterface): diff --git a/test/functional/p2p_feefilter.py b/test/functional/p2p_feefilter.py index c34820224..3bc7734e7 100755 --- a/test/functional/p2p_feefilter.py +++ b/test/functional/p2p_feefilter.py @@ -4,11 +4,13 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test processing of feefilter messages.""" -from test_framework.mininode import * -from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from decimal import Decimal import time +from test_framework.messages import msg_feefilter +from test_framework.mininode import mininode_lock, P2PInterface +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import sync_blocks, sync_mempools def hashToHex(hash): return format(hash, '064x') diff --git a/test/functional/p2p_fingerprint.py b/test/functional/p2p_fingerprint.py index 7cb22ad94..4a6ffced9 100755 --- a/test/functional/p2p_fingerprint.py +++ b/test/functional/p2p_fingerprint.py @@ -11,18 +11,18 @@ the node should pretend that it does not have it to avoid fingerprinting. import time from test_framework.blocktools import (create_block, create_coinbase) +from test_framework.messages import CInv from test_framework.mininode import ( - CInv, P2PInterface, msg_headers, msg_block, msg_getdata, msg_getheaders, - wait_until, ) from test_framework.test_framework import BitcoinTestFramework from test_framework.util import ( assert_equal, + wait_until, ) class P2PFingerprintTest(BitcoinTestFramework): diff --git a/test/functional/p2p_leak.py b/test/functional/p2p_leak.py index 058d0025c..dcbf833e7 100755 --- a/test/functional/p2p_leak.py +++ b/test/functional/p2p_leak.py @@ -10,9 +10,12 @@ received a VERACK. This test connects to a node and sends it a few messages, trying to entice it into sending us something it shouldn't.""" -from test_framework.mininode import * +import time + +from test_framework.messages import msg_getaddr, msg_ping, msg_verack +from test_framework.mininode import mininode_lock, P2PInterface from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import wait_until banscore = 10 diff --git a/test/functional/p2p_mempool.py b/test/functional/p2p_mempool.py index bdf51778e..a8fcb181e 100755 --- a/test/functional/p2p_mempool.py +++ b/test/functional/p2p_mempool.py @@ -8,9 +8,10 @@ Test that nodes are disconnected if they send mempool messages when bloom filters are not enabled. """ -from test_framework.mininode import * +from test_framework.messages import msg_mempool +from test_framework.mininode import P2PInterface from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal class P2PMempoolTests(BitcoinTestFramework): def set_test_params(self): diff --git a/test/functional/p2p_node_network_limited.py b/test/functional/p2p_node_network_limited.py index 0e20b9556..c987bf4b0 100755 --- a/test/functional/p2p_node_network_limited.py +++ b/test/functional/p2p_node_network_limited.py @@ -8,10 +8,10 @@ Tests that a node configured with -prune=550 signals NODE_NETWORK_LIMITED correc and that it responds to getdata requests for blocks correctly: - send a block within 288 + 2 of the tip - disconnect peers who request blocks older than that.""" -from test_framework.messages import CInv, msg_getdata, msg_verack -from test_framework.mininode import NODE_BLOOM, NODE_NETWORK_LIMITED, NODE_WITNESS, P2PInterface, wait_until, mininode_lock +from test_framework.messages import CInv, msg_getdata, msg_verack, NODE_BLOOM, NODE_NETWORK_LIMITED, NODE_WITNESS +from test_framework.mininode import P2PInterface, mininode_lock from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import assert_equal, disconnect_nodes, connect_nodes_bi, sync_blocks +from test_framework.util import assert_equal, disconnect_nodes, connect_nodes_bi, sync_blocks, wait_until class P2PIgnoreInv(P2PInterface): firstAddrnServices = 0 diff --git a/test/functional/p2p_sendheaders.py b/test/functional/p2p_sendheaders.py index 7c987b171..9cc496d51 100755 --- a/test/functional/p2p_sendheaders.py +++ b/test/functional/p2p_sendheaders.py @@ -86,9 +86,9 @@ e. Announce one more that doesn't connect. Expect: disconnect. """ from test_framework.blocktools import create_block, create_coinbase +from test_framework.messages import CInv from test_framework.mininode import ( CBlockHeader, - CInv, NODE_WITNESS, P2PInterface, mininode_lock, diff --git a/test/functional/p2p_timeouts.py b/test/functional/p2p_timeouts.py index 788f80cc4..2459a9f24 100755 --- a/test/functional/p2p_timeouts.py +++ b/test/functional/p2p_timeouts.py @@ -23,9 +23,9 @@ from time import sleep -from test_framework.mininode import * +from test_framework.messages import msg_ping +from test_framework.mininode import P2PInterface from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * class TestP2PConn(P2PInterface): def on_version(self, message): diff --git a/test/functional/p2p_unrequested_blocks.py b/test/functional/p2p_unrequested_blocks.py index 23175bf4a..2e86954ab 100755 --- a/test/functional/p2p_unrequested_blocks.py +++ b/test/functional/p2p_unrequested_blocks.py @@ -51,11 +51,13 @@ Node1 is unused in tests 3-7: work on its chain). """ -from test_framework.mininode import * -from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * import time + from test_framework.blocktools import create_block, create_coinbase, create_tx_with_script +from test_framework.messages import CBlockHeader, CInv, msg_block, msg_headers, msg_inv +from test_framework.mininode import mininode_lock, P2PInterface +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import assert_equal, assert_raises_rpc_error, connect_nodes, sync_blocks class AcceptBlockTest(BitcoinTestFramework): diff --git a/test/functional/rpc_bind.py b/test/functional/rpc_bind.py index ef060f993..53916d529 100755 --- a/test/functional/rpc_bind.py +++ b/test/functional/rpc_bind.py @@ -6,9 +6,9 @@ import sys +from test_framework.netutil import all_interfaces, addr_to_hex, get_bind_addrs, test_ipv6_local from test_framework.test_framework import BitcoinTestFramework, SkipTest -from test_framework.util import * -from test_framework.netutil import * +from test_framework.util import assert_equal, assert_raises_rpc_error, get_rpc_proxy, rpc_port, rpc_url class RPCBindTest(BitcoinTestFramework): def set_test_params(self): diff --git a/test/functional/rpc_decodescript.py b/test/functional/rpc_decodescript.py index b697fb7aa..940386eee 100755 --- a/test/functional/rpc_decodescript.py +++ b/test/functional/rpc_decodescript.py @@ -4,9 +4,10 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test decoding scripts via decodescript RPC command.""" +from test_framework.messages import CTransaction, sha256 from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * -from test_framework.mininode import * +from test_framework.util import assert_equal, bytes_to_hex_str, hex_str_to_bytes + from io import BytesIO class DecodeScriptTest(BitcoinTestFramework): diff --git a/test/functional/rpc_invalidateblock.py b/test/functional/rpc_invalidateblock.py index 5967e534c..f40710ef7 100755 --- a/test/functional/rpc_invalidateblock.py +++ b/test/functional/rpc_invalidateblock.py @@ -4,8 +4,10 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test the invalidateblock RPC.""" +import time + from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal, connect_nodes_bi, sync_blocks class InvalidateTest(BitcoinTestFramework): def set_test_params(self): diff --git a/test/functional/rpc_psbt.py b/test/functional/rpc_psbt.py index a68327496..26eca031c 100755 --- a/test/functional/rpc_psbt.py +++ b/test/functional/rpc_psbt.py @@ -6,7 +6,10 @@ """ from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal, assert_raises_rpc_error, find_output + +import json +import os # Create one-input, one-output, no-fee transaction: class PSBTTest(BitcoinTestFramework): diff --git a/test/functional/rpc_rawtransaction.py b/test/functional/rpc_rawtransaction.py index 3a29b57d0..1e3ada26f 100755 --- a/test/functional/rpc_rawtransaction.py +++ b/test/functional/rpc_rawtransaction.py @@ -13,10 +13,11 @@ Test the following RPCs: """ from collections import OrderedDict +from decimal import Decimal from io import BytesIO from test_framework.messages import CTransaction, ToHex from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal, assert_raises_rpc_error, bytes_to_hex_str, connect_nodes_bi, hex_str_to_bytes class multidict(dict): """Dictionary that allows duplicate keys. diff --git a/test/functional/rpc_scantxoutset.py b/test/functional/rpc_scantxoutset.py index 11c35b9f0..ceb38e969 100755 --- a/test/functional/rpc_scantxoutset.py +++ b/test/functional/rpc_scantxoutset.py @@ -4,8 +4,9 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test the scantxoutset rpc call.""" from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal +from decimal import Decimal import shutil import os diff --git a/test/functional/rpc_signrawtransaction.py b/test/functional/rpc_signrawtransaction.py index 81ad7a34e..32b099294 100755 --- a/test/functional/rpc_signrawtransaction.py +++ b/test/functional/rpc_signrawtransaction.py @@ -5,7 +5,7 @@ """Test transaction signing using the signrawtransaction* RPCs.""" from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal, assert_raises_rpc_error class SignRawTransactionsTest(BitcoinTestFramework): diff --git a/test/functional/rpc_txoutproof.py b/test/functional/rpc_txoutproof.py index a602e98f7..f9f857464 100755 --- a/test/functional/rpc_txoutproof.py +++ b/test/functional/rpc_txoutproof.py @@ -4,10 +4,9 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test gettxoutproof and verifytxoutproof RPCs.""" +from test_framework.messages import CMerkleBlock, FromHex, ToHex from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * -from test_framework.mininode import FromHex, ToHex -from test_framework.messages import CMerkleBlock +from test_framework.util import assert_equal, assert_raises_rpc_error, connect_nodes class MerkleBlockTest(BitcoinTestFramework): def set_test_params(self): diff --git a/test/functional/test_framework/mininode.py b/test/functional/test_framework/mininode.py index ba37e1793..d1ddbbe8e 100755 --- a/test/functional/test_framework/mininode.py +++ b/test/functional/test_framework/mininode.py @@ -21,7 +21,7 @@ import struct import sys import threading -from test_framework.messages import * +from test_framework.messages import CBlockHeader, MIN_VERSION_SUPPORTED, msg_addr, msg_block, MSG_BLOCK, msg_blocktxn, msg_cmpctblock, msg_feefilter, msg_getaddr, msg_getblocks, msg_getblocktxn, msg_getdata, msg_getheaders, msg_headers, msg_inv, msg_mempool, msg_ping, msg_pong, msg_reject, msg_sendcmpct, msg_sendheaders, msg_tx, MSG_TX, MSG_TYPE_MASK, msg_verack, msg_version, NODE_NETWORK, NODE_WITNESS, sha256 from test_framework.util import wait_until logger = logging.getLogger("TestFramework.mininode") diff --git a/test/functional/test_framework/script.py b/test/functional/test_framework/script.py index d1f605a2e..375d6334f 100644 --- a/test/functional/test_framework/script.py +++ b/test/functional/test_framework/script.py @@ -7,7 +7,8 @@ This file is modified from python-bitcoinlib. """ -from .mininode import CTransaction, CTxOut, sha256, hash256, uint256_from_str, ser_uint256, ser_string +from .messages import CTransaction, CTxOut, sha256, hash256, uint256_from_str, ser_uint256, ser_string + from binascii import hexlify import hashlib import struct diff --git a/test/functional/wallet_abandonconflict.py b/test/functional/wallet_abandonconflict.py index 7740b2136..8a57b55ca 100755 --- a/test/functional/wallet_abandonconflict.py +++ b/test/functional/wallet_abandonconflict.py @@ -10,9 +10,10 @@ which are not included in a block and are not currently in the mempool. It has no effect on transactions which are already abandoned. """ -from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from decimal import Decimal +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import assert_equal, assert_raises_rpc_error, connect_nodes, disconnect_nodes, sync_blocks, sync_mempools class AbandonConflictTest(BitcoinTestFramework): def set_test_params(self): diff --git a/test/functional/wallet_backup.py b/test/functional/wallet_backup.py index 181af9a8d..4ef8f4776 100755 --- a/test/functional/wallet_backup.py +++ b/test/functional/wallet_backup.py @@ -30,11 +30,13 @@ confirm 1/2/3/4 balances are same as before. Shutdown again, restore using importwallet, and confirm again balances are correct. """ +from decimal import Decimal +import os from random import randint import shutil from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal, assert_raises_rpc_error, connect_nodes, sync_blocks, sync_mempools class WalletBackupTest(BitcoinTestFramework): def set_test_params(self): diff --git a/test/functional/wallet_bumpfee.py b/test/functional/wallet_bumpfee.py index 356393cfa..dd95bb5e2 100755 --- a/test/functional/wallet_bumpfee.py +++ b/test/functional/wallet_bumpfee.py @@ -14,12 +14,12 @@ added in the future, they should try to follow the same convention and not make assumptions about execution order. """ -from test_framework.blocktools import send_to_witness +from decimal import Decimal + +from test_framework.blocktools import add_witness_commitment, create_block, create_coinbase, send_to_witness +from test_framework.messages import BIP125_SEQUENCE_NUMBER, CTransaction from test_framework.test_framework import BitcoinTestFramework -from test_framework import blocktools -from test_framework.messages import BIP125_SEQUENCE_NUMBER -from test_framework.mininode import CTransaction -from test_framework.util import * +from test_framework.util import assert_equal, assert_greater_than, assert_raises_rpc_error, bytes_to_hex_str, connect_nodes_bi, hex_str_to_bytes, sync_mempools import io @@ -290,11 +290,11 @@ def submit_block_with_tx(node, tx): tip = node.getbestblockhash() height = node.getblockcount() + 1 block_time = node.getblockheader(tip)["mediantime"] + 1 - block = blocktools.create_block(int(tip, 16), blocktools.create_coinbase(height), block_time) + block = create_block(int(tip, 16), create_coinbase(height), block_time) block.vtx.append(ctx) block.rehash() block.hashMerkleRoot = block.calc_merkle_root() - blocktools.add_witness_commitment(block) + add_witness_commitment(block) block.solve() node.submitblock(bytes_to_hex_str(block.serialize(True))) return block diff --git a/test/functional/wallet_disable.py b/test/functional/wallet_disable.py index 4fec85c1c..6530c58c7 100755 --- a/test/functional/wallet_disable.py +++ b/test/functional/wallet_disable.py @@ -9,7 +9,7 @@ """ from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_raises_rpc_error class DisableWalletTest (BitcoinTestFramework): def set_test_params(self): diff --git a/test/functional/wallet_fallbackfee.py b/test/functional/wallet_fallbackfee.py index f0a643bb4..91dbae893 100755 --- a/test/functional/wallet_fallbackfee.py +++ b/test/functional/wallet_fallbackfee.py @@ -4,7 +4,7 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test wallet replace-by-fee capabilities in conjunction with the fallbackfee.""" from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_raises_rpc_error class WalletRBFTest(BitcoinTestFramework): def set_test_params(self): diff --git a/test/functional/wallet_groups.py b/test/functional/wallet_groups.py index 9fa7eaf07..12dac145b 100755 --- a/test/functional/wallet_groups.py +++ b/test/functional/wallet_groups.py @@ -5,8 +5,7 @@ """Test wallet group functionality.""" from test_framework.test_framework import BitcoinTestFramework -from test_framework.mininode import FromHex, ToHex -from test_framework.messages import CTransaction +from test_framework.messages import CTransaction, FromHex, ToHex from test_framework.util import ( assert_equal, ) diff --git a/test/functional/wallet_importmulti.py b/test/functional/wallet_importmulti.py index 4664e868f..5f19e1e2c 100755 --- a/test/functional/wallet_importmulti.py +++ b/test/functional/wallet_importmulti.py @@ -4,7 +4,7 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test the importmulti RPC.""" from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal, assert_greater_than, assert_raises_rpc_error class ImportMultiTest (BitcoinTestFramework): def set_test_params(self): diff --git a/test/functional/wallet_keypool.py b/test/functional/wallet_keypool.py index b00649162..f52dce04d 100755 --- a/test/functional/wallet_keypool.py +++ b/test/functional/wallet_keypool.py @@ -4,8 +4,10 @@ # file COPYING or http://www.opensource.org/licenses/mit-license.php. """Test the wallet keypool and interaction with wallet encryption/locking.""" +import time + from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * +from test_framework.util import assert_equal, assert_raises_rpc_error class KeyPoolTest(BitcoinTestFramework): def set_test_params(self): diff --git a/test/functional/wallet_listtransactions.py b/test/functional/wallet_listtransactions.py index f77fcdc89..4dc3ff4b2 100755 --- a/test/functional/wallet_listtransactions.py +++ b/test/functional/wallet_listtransactions.py @@ -6,7 +6,7 @@ from decimal import Decimal from io import BytesIO -from test_framework.mininode import CTransaction, COIN +from test_framework.messages import COIN, CTransaction from test_framework.test_framework import BitcoinTestFramework from test_framework.util import ( assert_array_result, diff --git a/test/lint/lint-python.sh b/test/lint/lint-python.sh index d9d46d86d..7e7379051 100755 --- a/test/lint/lint-python.sh +++ b/test/lint/lint-python.sh @@ -30,6 +30,8 @@ export LC_ALL=C # E306 expected 1 blank line before a nested definition # E401 multiple imports on one line # E402 module level import not at top of file +# F403 'from foo_module import *' used; unable to detect undefined names +# F405 foo_function may be undefined, or defined from star imports: bar_module # E502 the backslash is redundant between brackets # E701 multiple statements on one line (colon) # E702 multiple statements on one line (semicolon) @@ -77,4 +79,4 @@ export LC_ALL=C # W605 invalid escape sequence "x" # W606 'async' and 'await' are reserved keywords starting with Python 3.7 -flake8 --ignore=B,C,E,F,I,N,W --select=E101,E112,E113,E115,E116,E125,E129,E131,E133,E223,E224,E242,E266,E271,E272,E273,E274,E275,E304,E306,E401,E402,E502,E701,E702,E703,E714,E721,E741,E742,E743,F401,E901,E902,F402,F404,F406,F407,F601,F602,F621,F622,F631,F701,F702,F703,F704,F705,F706,F707,F811,F812,F821,F822,F823,F831,F841,W191,W291,W292,W293,W504,W601,W602,W603,W604,W605,W606 . +flake8 --ignore=B,C,E,F,I,N,W --select=E101,E112,E113,E115,E116,E125,E129,E131,E133,E223,E224,E242,E266,E271,E272,E273,E274,E275,E304,E306,E401,E402,E502,E701,E702,E703,E714,E721,E741,E742,E743,E901,E902,F401,F402,F403,F404,F405,F406,F407,F601,F602,F621,F622,F631,F701,F702,F703,F704,F705,F706,F707,F811,F812,F821,F822,F823,F831,F841,W191,W291,W292,W293,W504,W601,W602,W603,W604,W605,W606 . |