aboutsummaryrefslogtreecommitdiff
path: root/qa
diff options
context:
space:
mode:
Diffstat (limited to 'qa')
-rwxr-xr-xqa/pull-tester/rpc-tests.sh32
-rw-r--r--qa/rpc-tests/README.md28
-rwxr-xr-xqa/rpc-tests/bipdersig-p2p.py12
-rwxr-xr-xqa/rpc-tests/bipdersig.py5
-rwxr-xr-xqa/rpc-tests/forknotify.py5
-rwxr-xr-xqa/rpc-tests/getblocktemplate_longpoll.py5
-rwxr-xr-xqa/rpc-tests/getblocktemplate_proposals.py5
-rwxr-xr-xqa/rpc-tests/getchaintips.py4
-rwxr-xr-xqa/rpc-tests/httpbasics.py4
-rwxr-xr-xqa/rpc-tests/invalidateblock.py5
-rwxr-xr-xqa/rpc-tests/invalidblockrequest.py10
-rwxr-xr-xqa/rpc-tests/keypool.py4
-rwxr-xr-xqa/rpc-tests/listtransactions.py5
-rwxr-xr-xqa/rpc-tests/maxblocksinflight.py6
-rwxr-xr-xqa/rpc-tests/mempool_coinbase_spends.py5
-rwxr-xr-xqa/rpc-tests/mempool_resurrect_test.py6
-rwxr-xr-xqa/rpc-tests/mempool_spendcoinbase.py5
-rwxr-xr-xqa/rpc-tests/merkle_blocks.py5
-rwxr-xr-xqa/rpc-tests/proxy_test.py6
-rwxr-xr-xqa/rpc-tests/pruning.py5
-rw-r--r--qa/rpc-tests/python-bitcoinrpc/bitcoinrpc/.gitignore1
-rw-r--r--qa/rpc-tests/python-bitcoinrpc/setup.py15
-rwxr-xr-xqa/rpc-tests/rawtransactions.py4
-rwxr-xr-xqa/rpc-tests/receivedby.py5
-rwxr-xr-xqa/rpc-tests/reindex.py5
-rwxr-xr-xqa/rpc-tests/rest.py5
-rwxr-xr-xqa/rpc-tests/rpcbind_test.py6
-rwxr-xr-xqa/rpc-tests/script_test.py14
-rwxr-xr-xqa/rpc-tests/signrawtransactions.py4
-rwxr-xr-xqa/rpc-tests/smartfees.py5
-rw-r--r--qa/rpc-tests/test_framework/__init__.py (renamed from qa/rpc-tests/python-bitcoinrpc/bitcoinrpc/__init__.py)0
-rw-r--r--qa/rpc-tests/test_framework/authproxy.py (renamed from qa/rpc-tests/python-bitcoinrpc/bitcoinrpc/authproxy.py)0
-rw-r--r--qa/rpc-tests/test_framework/bignum.py (renamed from qa/rpc-tests/bignum.py)0
-rw-r--r--qa/rpc-tests/test_framework/blockstore.py (renamed from qa/rpc-tests/blockstore.py)0
-rw-r--r--qa/rpc-tests/test_framework/blocktools.py (renamed from qa/rpc-tests/blocktools.py)0
-rwxr-xr-xqa/rpc-tests/test_framework/comptool.py (renamed from qa/rpc-tests/comptool.py)0
-rwxr-xr-xqa/rpc-tests/test_framework/mininode.py (renamed from qa/rpc-tests/mininode.py)0
-rw-r--r--qa/rpc-tests/test_framework/netutil.py (renamed from qa/rpc-tests/netutil.py)0
-rw-r--r--qa/rpc-tests/test_framework/script.py (renamed from qa/rpc-tests/script.py)4
-rw-r--r--qa/rpc-tests/test_framework/socks5.py (renamed from qa/rpc-tests/socks5.py)0
-rwxr-xr-xqa/rpc-tests/test_framework/test_framework.py (renamed from qa/rpc-tests/test_framework.py)3
-rw-r--r--qa/rpc-tests/test_framework/util.py (renamed from qa/rpc-tests/util.py)3
-rwxr-xr-xqa/rpc-tests/txn_doublespend.py5
-rwxr-xr-xqa/rpc-tests/wallet.py5
-rwxr-xr-xqa/rpc-tests/walletbackup.py4
-rwxr-xr-xqa/rpc-tests/zapwallettxes.py4
46 files changed, 128 insertions, 126 deletions
diff --git a/qa/pull-tester/rpc-tests.sh b/qa/pull-tester/rpc-tests.sh
index ecde45059b..88772a9c32 100755
--- a/qa/pull-tester/rpc-tests.sh
+++ b/qa/pull-tester/rpc-tests.sh
@@ -31,18 +31,46 @@ testScripts=(
'proxy_test.py'
'merkle_blocks.py'
'signrawtransactions.py'
+ 'walletbackup.py'
+);
+testScriptsExt=(
+ 'bipdersig-p2p.py'
+ 'bipdersig.py'
+ 'getblocktemplate_longpoll.py'
+ 'getblocktemplate_proposals.py'
+ 'pruning.py'
+ 'forknotify.py'
+ 'invalidateblock.py'
+ 'keypool.py'
+ 'receivedby.py'
+ 'reindex.py'
+ 'rpcbind_test.py'
+# 'script_test.py'
+ 'smartfees.py'
'maxblocksinflight.py'
'invalidblockrequest.py'
'rawtransactions.py'
# 'forknotify.py'
);
+
+extArg="-extended"
+passOn=${@#$extArg}
+
if [ "x${ENABLE_BITCOIND}${ENABLE_UTILS}${ENABLE_WALLET}" = "x111" ]; then
for (( i = 0; i < ${#testScripts[@]}; i++ ))
do
- if [ -z "$1" ] || [ "$1" == "${testScripts[$i]}" ] || [ "$1.py" == "${testScripts[$i]}" ]
+ if [ -z "$1" ] || [ "${1:0:1}" == "-" ] || [ "$1" == "${testScripts[$i]}" ] || [ "$1.py" == "${testScripts[$i]}" ]
then
echo -e "Running testscript \033[1m${testScripts[$i]}...\033[0m"
- ${BUILDDIR}/qa/rpc-tests/${testScripts[$i]} --srcdir "${BUILDDIR}/src"
+ ${BUILDDIR}/qa/rpc-tests/${testScripts[$i]} --srcdir "${BUILDDIR}/src" ${passOn}
+ fi
+ done
+ for (( i = 0; i < ${#testScriptsExt[@]}; i++ ))
+ do
+ if [ "$1" == $extArg ] || [ "$1" == "${testScriptsExt[$i]}" ] || [ "$1.py" == "${testScriptsExt[$i]}" ]
+ then
+ echo -e "Running \033[1m2nd level\033[0m testscript \033[1m${testScriptsExt[$i]}...\033[0m"
+ ${BUILDDIR}/qa/rpc-tests/${testScriptsExt[$i]} --srcdir "${BUILDDIR}/src" ${passOn}
fi
done
else
diff --git a/qa/rpc-tests/README.md b/qa/rpc-tests/README.md
index d9fbb109e8..6221c93d8b 100644
--- a/qa/rpc-tests/README.md
+++ b/qa/rpc-tests/README.md
@@ -6,25 +6,37 @@ Git subtree of [https://github.com/jgarzik/python-bitcoinrpc](https://github.com
Changes to python-bitcoinrpc should be made upstream, and then
pulled here using git subtree.
-### [test_framework.py](test_framework.py)
+### [test_framework/test_framework.py](test_framework/test_framework.py)
Base class for new regression tests.
-### [listtransactions.py](listtransactions.py)
-Tests for the listtransactions RPC call.
-
-### [util.py](util.py)
+### [test_framework/util.py](test_framework/util.py)
Generally useful functions.
Bash-based tests, to be ported to Python:
-----------------------------------------
-- wallet.sh : Exercise wallet send/receive code.
-- walletbackup.sh : Exercise wallet backup / dump / import
-- txnmall.sh : Test proper accounting of malleable transactions
- conflictedbalance.sh : More testing of malleable transaction handling
Notes
=====
+You can run a single test by calling `qa/pull-tester/rpc-tests.sh <testname>`.
+
+Run all possible tests with `qa/pull-tester/rpc-tests.sh -extended`.
+
+Possible options:
+
+````
+-h, --help show this help message and exit
+ --nocleanup Leave bitcoinds and test.* datadir on exit or error
+ --noshutdown Don't stop bitcoinds after the test execution
+ --srcdir=SRCDIR Source directory containing bitcoind/bitcoin-cli (default:
+ ../../src)
+ --tmpdir=TMPDIR Root directory for datadirs
+ --tracerpc Print out all RPC calls as they are made
+```
+
+If you set the environment variable `PYTHON_DEBUG=1` you will get some debug output (example: `PYTHON_DEBUG=1 qa/pull-tester/rpc-tests.sh wallet`).
+
A 200-block -regtest blockchain and wallets for four nodes
is created the first time a regression test is run and
is stored in the cache/ directory. Each node has 25 mature
diff --git a/qa/rpc-tests/bipdersig-p2p.py b/qa/rpc-tests/bipdersig-p2p.py
index ff0c878898..41717377b2 100755
--- a/qa/rpc-tests/bipdersig-p2p.py
+++ b/qa/rpc-tests/bipdersig-p2p.py
@@ -4,14 +4,14 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
#
-from test_framework import ComparisonTestFramework
-from util import *
-from mininode import CTransaction, NetworkThread
-from blocktools import create_coinbase, create_block
+from test_framework.test_framework import ComparisonTestFramework
+from test_framework.util import *
+from test_framework.mininode import CTransaction, NetworkThread
+from test_framework.blocktools import create_coinbase, create_block
+from test_framework.comptool import TestInstance, TestManager
+from test_framework.script import CScript
from binascii import hexlify, unhexlify
import cStringIO
-from comptool import TestInstance, TestManager
-from script import CScript
import time
# A canonical signature consists of:
diff --git a/qa/rpc-tests/bipdersig.py b/qa/rpc-tests/bipdersig.py
index 2c43bba865..243f816f65 100755
--- a/qa/rpc-tests/bipdersig.py
+++ b/qa/rpc-tests/bipdersig.py
@@ -7,9 +7,8 @@
# Test the BIP66 changeover logic
#
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
import os
import shutil
diff --git a/qa/rpc-tests/forknotify.py b/qa/rpc-tests/forknotify.py
index af22ffb1a5..0acef8e30b 100755
--- a/qa/rpc-tests/forknotify.py
+++ b/qa/rpc-tests/forknotify.py
@@ -7,9 +7,8 @@
# Test -alertnotify
#
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
import os
import shutil
diff --git a/qa/rpc-tests/getblocktemplate_longpoll.py b/qa/rpc-tests/getblocktemplate_longpoll.py
index 64fe49b835..aab4562422 100755
--- a/qa/rpc-tests/getblocktemplate_longpoll.py
+++ b/qa/rpc-tests/getblocktemplate_longpoll.py
@@ -3,9 +3,8 @@
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
def check_array_result(object_array, to_match, expected):
diff --git a/qa/rpc-tests/getblocktemplate_proposals.py b/qa/rpc-tests/getblocktemplate_proposals.py
index a63f456d6b..aca0cd7495 100755
--- a/qa/rpc-tests/getblocktemplate_proposals.py
+++ b/qa/rpc-tests/getblocktemplate_proposals.py
@@ -3,9 +3,8 @@
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
from binascii import a2b_hex, b2a_hex
from hashlib import sha256
diff --git a/qa/rpc-tests/getchaintips.py b/qa/rpc-tests/getchaintips.py
index 83a9537285..6a2bcb2969 100755
--- a/qa/rpc-tests/getchaintips.py
+++ b/qa/rpc-tests/getchaintips.py
@@ -7,8 +7,8 @@
# on chains of different lengths, and join the network together again.
# This gives us two tips, verify that it works.
-from test_framework import BitcoinTestFramework
-from util import assert_equal
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import assert_equal
class GetChainTipsTest (BitcoinTestFramework):
diff --git a/qa/rpc-tests/httpbasics.py b/qa/rpc-tests/httpbasics.py
index 24533741e5..64ba49df64 100755
--- a/qa/rpc-tests/httpbasics.py
+++ b/qa/rpc-tests/httpbasics.py
@@ -7,8 +7,8 @@
# Test REST interface
#
-from test_framework import BitcoinTestFramework
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
import base64
try:
diff --git a/qa/rpc-tests/invalidateblock.py b/qa/rpc-tests/invalidateblock.py
index fd8a8e5785..2b9c8154e0 100755
--- a/qa/rpc-tests/invalidateblock.py
+++ b/qa/rpc-tests/invalidateblock.py
@@ -7,9 +7,8 @@
# Test InvalidateBlock code
#
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
class InvalidateTest(BitcoinTestFramework):
diff --git a/qa/rpc-tests/invalidblockrequest.py b/qa/rpc-tests/invalidblockrequest.py
index 8b685ed9b2..64b8e26395 100755
--- a/qa/rpc-tests/invalidblockrequest.py
+++ b/qa/rpc-tests/invalidblockrequest.py
@@ -4,11 +4,11 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
#
-from test_framework import ComparisonTestFramework
-from util import *
-from comptool import TestManager, TestInstance
-from mininode import *
-from blocktools import *
+from test_framework.test_framework import ComparisonTestFramework
+from test_framework.util import *
+from test_framework.comptool import TestManager, TestInstance
+from test_framework.mininode import *
+from test_framework.blocktools import *
import logging
import copy
import time
diff --git a/qa/rpc-tests/keypool.py b/qa/rpc-tests/keypool.py
index 3840ea39d3..aee29a596a 100755
--- a/qa/rpc-tests/keypool.py
+++ b/qa/rpc-tests/keypool.py
@@ -8,7 +8,6 @@
# Add python-bitcoinrpc to module search path:
import os
import sys
-sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), "python-bitcoinrpc"))
import json
import shutil
@@ -16,8 +15,7 @@ import subprocess
import tempfile
import traceback
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.util import *
def check_array_result(object_array, to_match, expected):
diff --git a/qa/rpc-tests/listtransactions.py b/qa/rpc-tests/listtransactions.py
index 11e3635c04..eeae2d2fa2 100755
--- a/qa/rpc-tests/listtransactions.py
+++ b/qa/rpc-tests/listtransactions.py
@@ -5,9 +5,8 @@
# Exercise the listtransactions API
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
def check_array_result(object_array, to_match, expected):
diff --git a/qa/rpc-tests/maxblocksinflight.py b/qa/rpc-tests/maxblocksinflight.py
index 87c80cd97e..a601147ce8 100755
--- a/qa/rpc-tests/maxblocksinflight.py
+++ b/qa/rpc-tests/maxblocksinflight.py
@@ -4,9 +4,9 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
#
-from mininode import *
-from test_framework import BitcoinTestFramework
-from util import *
+from test_framework.mininode import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
import logging
'''
diff --git a/qa/rpc-tests/mempool_coinbase_spends.py b/qa/rpc-tests/mempool_coinbase_spends.py
index 853d031de4..c64a15b9f5 100755
--- a/qa/rpc-tests/mempool_coinbase_spends.py
+++ b/qa/rpc-tests/mempool_coinbase_spends.py
@@ -8,9 +8,8 @@
# that spend (directly or indirectly) coinbase transactions.
#
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
import os
import shutil
diff --git a/qa/rpc-tests/mempool_resurrect_test.py b/qa/rpc-tests/mempool_resurrect_test.py
index 6f7f577e36..19c74bb751 100755
--- a/qa/rpc-tests/mempool_resurrect_test.py
+++ b/qa/rpc-tests/mempool_resurrect_test.py
@@ -8,9 +8,8 @@
# the blockchain is re-organized.
#
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
import os
import shutil
@@ -34,7 +33,6 @@ class MempoolCoinbaseTest(BitcoinTestFramework):
def run_test(self):
node0_address = self.nodes[0].getnewaddress()
-
# Spend block 1/2/3's coinbase transactions
# Mine a block.
# Create three more transactions, spending the spends
diff --git a/qa/rpc-tests/mempool_spendcoinbase.py b/qa/rpc-tests/mempool_spendcoinbase.py
index ab5817c869..fc17c50692 100755
--- a/qa/rpc-tests/mempool_spendcoinbase.py
+++ b/qa/rpc-tests/mempool_spendcoinbase.py
@@ -13,9 +13,8 @@
# but less mature coinbase spends are NOT.
#
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
import os
import shutil
diff --git a/qa/rpc-tests/merkle_blocks.py b/qa/rpc-tests/merkle_blocks.py
index a143d21a21..72a80ce6ca 100755
--- a/qa/rpc-tests/merkle_blocks.py
+++ b/qa/rpc-tests/merkle_blocks.py
@@ -7,9 +7,8 @@
# Test merkleblock fetch/validation
#
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
import os
import shutil
diff --git a/qa/rpc-tests/proxy_test.py b/qa/rpc-tests/proxy_test.py
index d6d9e6725b..9a9b2f5300 100755
--- a/qa/rpc-tests/proxy_test.py
+++ b/qa/rpc-tests/proxy_test.py
@@ -7,9 +7,9 @@ import traceback, sys
from binascii import hexlify
import time, os
-from socks5 import Socks5Configuration, Socks5Command, Socks5Server, AddressType
-from test_framework import BitcoinTestFramework
-from util import *
+from test_framework.socks5 import Socks5Configuration, Socks5Command, Socks5Server, AddressType
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
'''
Test plan:
- Start bitcoind's with different proxy configurations
diff --git a/qa/rpc-tests/pruning.py b/qa/rpc-tests/pruning.py
index 85fd1c982a..2824c51ce7 100755
--- a/qa/rpc-tests/pruning.py
+++ b/qa/rpc-tests/pruning.py
@@ -11,9 +11,8 @@
# This test takes 30 mins or more (up to 2 hours)
# ********
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
import os.path
def calc_usage(blockdir):
diff --git a/qa/rpc-tests/python-bitcoinrpc/bitcoinrpc/.gitignore b/qa/rpc-tests/python-bitcoinrpc/bitcoinrpc/.gitignore
deleted file mode 100644
index 0d20b6487c..0000000000
--- a/qa/rpc-tests/python-bitcoinrpc/bitcoinrpc/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*.pyc
diff --git a/qa/rpc-tests/python-bitcoinrpc/setup.py b/qa/rpc-tests/python-bitcoinrpc/setup.py
deleted file mode 100644
index 43cdb1c038..0000000000
--- a/qa/rpc-tests/python-bitcoinrpc/setup.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python2
-
-from distutils.core import setup
-
-setup(name='python-bitcoinrpc',
- version='0.1',
- description='Enhanced version of python-jsonrpc for use with Bitcoin',
- long_description=open('README').read(),
- author='Jeff Garzik',
- author_email='<jgarzik@exmulti.com>',
- maintainer='Jeff Garzik',
- maintainer_email='<jgarzik@exmulti.com>',
- url='http://www.github.com/jgarzik/python-bitcoinrpc',
- packages=['bitcoinrpc'],
- classifiers=['License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)', 'Operating System :: OS Independent'])
diff --git a/qa/rpc-tests/rawtransactions.py b/qa/rpc-tests/rawtransactions.py
index 3d80c97d74..1378514c84 100755
--- a/qa/rpc-tests/rawtransactions.py
+++ b/qa/rpc-tests/rawtransactions.py
@@ -8,8 +8,8 @@
# that spend (directly or indirectly) coinbase transactions.
#
-from test_framework import BitcoinTestFramework
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
from pprint import pprint
from time import sleep
diff --git a/qa/rpc-tests/receivedby.py b/qa/rpc-tests/receivedby.py
index 1a681e1aae..16d6bd4cf1 100755
--- a/qa/rpc-tests/receivedby.py
+++ b/qa/rpc-tests/receivedby.py
@@ -5,9 +5,8 @@
# Exercise the listreceivedbyaddress API
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
def get_sub_array_from_array(object_array, to_match):
diff --git a/qa/rpc-tests/reindex.py b/qa/rpc-tests/reindex.py
index fe767586bb..f2e3f248ea 100755
--- a/qa/rpc-tests/reindex.py
+++ b/qa/rpc-tests/reindex.py
@@ -6,9 +6,8 @@
#
# Test -reindex with CheckBlockIndex
#
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
import os.path
class ReindexTest(BitcoinTestFramework):
diff --git a/qa/rpc-tests/rest.py b/qa/rpc-tests/rest.py
index a6a671ec88..6c51b2fcd9 100755
--- a/qa/rpc-tests/rest.py
+++ b/qa/rpc-tests/rest.py
@@ -7,8 +7,9 @@
# Test REST interface
#
-from test_framework import BitcoinTestFramework
-from util import *
+
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
from struct import *
import binascii
import json
diff --git a/qa/rpc-tests/rpcbind_test.py b/qa/rpc-tests/rpcbind_test.py
index 655e00b6e7..04110c2831 100755
--- a/qa/rpc-tests/rpcbind_test.py
+++ b/qa/rpc-tests/rpcbind_test.py
@@ -8,7 +8,6 @@
# Add python-bitcoinrpc to module search path:
import os
import sys
-sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), "python-bitcoinrpc"))
import json
import shutil
@@ -16,9 +15,8 @@ import subprocess
import tempfile
import traceback
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
-from netutil import *
+from test_framework.util import *
+from test_framework.netutil import *
def run_bind_test(tmpdir, allow_ips, connect_to, addresses, expected):
'''
diff --git a/qa/rpc-tests/script_test.py b/qa/rpc-tests/script_test.py
index 1ba3a478a8..860fa56b64 100755
--- a/qa/rpc-tests/script_test.py
+++ b/qa/rpc-tests/script_test.py
@@ -19,12 +19,12 @@ that flag, we use a block time before the switchover date).
NOTE: This test is very slow and may take more than 40 minutes to run.
'''
-from test_framework import ComparisonTestFramework
-from util import *
-from comptool import TestInstance, TestManager
-from mininode import *
-from blocktools import *
-from script import *
+from test_framework.test_framework import ComparisonTestFramework
+from test_framework.util import *
+from test_framework.comptool import TestInstance, TestManager
+from test_framework.mininode import *
+from test_framework.blocktools import *
+from test_framework.script import *
import logging
import copy
import json
@@ -42,7 +42,7 @@ class ScriptTestFile(object):
def load_files(self):
for f in self.files:
- self.data.extend(json.loads(open(f).read()))
+ self.data.extend(json.loads(open(os.path.dirname(os.path.abspath(__file__))+"/"+f).read()))
# Skip over records that are not long enough to be tests
def get_records(self):
diff --git a/qa/rpc-tests/signrawtransactions.py b/qa/rpc-tests/signrawtransactions.py
index 943634bd19..d51d6ee610 100755
--- a/qa/rpc-tests/signrawtransactions.py
+++ b/qa/rpc-tests/signrawtransactions.py
@@ -3,8 +3,8 @@
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
-from test_framework import BitcoinTestFramework
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
class SignRawTransactionsTest(BitcoinTestFramework):
diff --git a/qa/rpc-tests/smartfees.py b/qa/rpc-tests/smartfees.py
index 69f3c22c17..c15c5fda09 100755
--- a/qa/rpc-tests/smartfees.py
+++ b/qa/rpc-tests/smartfees.py
@@ -7,9 +7,8 @@
# Test fee estimation code
#
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
# Construct 2 trivial P2SH's and the ScriptSigs that spend them
# So we can create many many transactions without needing to spend
diff --git a/qa/rpc-tests/python-bitcoinrpc/bitcoinrpc/__init__.py b/qa/rpc-tests/test_framework/__init__.py
index e69de29bb2..e69de29bb2 100644
--- a/qa/rpc-tests/python-bitcoinrpc/bitcoinrpc/__init__.py
+++ b/qa/rpc-tests/test_framework/__init__.py
diff --git a/qa/rpc-tests/python-bitcoinrpc/bitcoinrpc/authproxy.py b/qa/rpc-tests/test_framework/authproxy.py
index bc7d655fdf..bc7d655fdf 100644
--- a/qa/rpc-tests/python-bitcoinrpc/bitcoinrpc/authproxy.py
+++ b/qa/rpc-tests/test_framework/authproxy.py
diff --git a/qa/rpc-tests/bignum.py b/qa/rpc-tests/test_framework/bignum.py
index b0c58ccd47..b0c58ccd47 100644
--- a/qa/rpc-tests/bignum.py
+++ b/qa/rpc-tests/test_framework/bignum.py
diff --git a/qa/rpc-tests/blockstore.py b/qa/rpc-tests/test_framework/blockstore.py
index c57b6df81b..c57b6df81b 100644
--- a/qa/rpc-tests/blockstore.py
+++ b/qa/rpc-tests/test_framework/blockstore.py
diff --git a/qa/rpc-tests/blocktools.py b/qa/rpc-tests/test_framework/blocktools.py
index f397fe7cd6..f397fe7cd6 100644
--- a/qa/rpc-tests/blocktools.py
+++ b/qa/rpc-tests/test_framework/blocktools.py
diff --git a/qa/rpc-tests/comptool.py b/qa/rpc-tests/test_framework/comptool.py
index 23a979250c..23a979250c 100755
--- a/qa/rpc-tests/comptool.py
+++ b/qa/rpc-tests/test_framework/comptool.py
diff --git a/qa/rpc-tests/mininode.py b/qa/rpc-tests/test_framework/mininode.py
index b7d78e74fa..b7d78e74fa 100755
--- a/qa/rpc-tests/mininode.py
+++ b/qa/rpc-tests/test_framework/mininode.py
diff --git a/qa/rpc-tests/netutil.py b/qa/rpc-tests/test_framework/netutil.py
index b30a88a4f7..b30a88a4f7 100644
--- a/qa/rpc-tests/netutil.py
+++ b/qa/rpc-tests/test_framework/netutil.py
diff --git a/qa/rpc-tests/script.py b/qa/rpc-tests/test_framework/script.py
index 03695b8635..e37ab5d45a 100644
--- a/qa/rpc-tests/script.py
+++ b/qa/rpc-tests/test_framework/script.py
@@ -14,7 +14,7 @@ Functionality to build scripts, as well as SignatureHash().
from __future__ import absolute_import, division, print_function, unicode_literals
-from mininode import CTransaction, CTxOut, hash256
+from test_framework.mininode import CTransaction, CTxOut, hash256
import sys
bchr = chr
@@ -27,7 +27,7 @@ if sys.version > '3':
import copy
import struct
-import bignum
+import test_framework.bignum
MAX_SCRIPT_SIZE = 10000
MAX_SCRIPT_ELEMENT_SIZE = 520
diff --git a/qa/rpc-tests/socks5.py b/qa/rpc-tests/test_framework/socks5.py
index 1dbfb98d5d..1dbfb98d5d 100644
--- a/qa/rpc-tests/socks5.py
+++ b/qa/rpc-tests/test_framework/socks5.py
diff --git a/qa/rpc-tests/test_framework.py b/qa/rpc-tests/test_framework/test_framework.py
index 15a357a340..5671431f6e 100755
--- a/qa/rpc-tests/test_framework.py
+++ b/qa/rpc-tests/test_framework/test_framework.py
@@ -8,13 +8,12 @@
# Add python-bitcoinrpc to module search path:
import os
import sys
-sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), "python-bitcoinrpc"))
import shutil
import tempfile
import traceback
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
+from authproxy import AuthServiceProxy, JSONRPCException
from util import *
diff --git a/qa/rpc-tests/util.py b/qa/rpc-tests/test_framework/util.py
index 997bbcc373..c236ec2602 100644
--- a/qa/rpc-tests/util.py
+++ b/qa/rpc-tests/test_framework/util.py
@@ -8,7 +8,6 @@
# Add python-bitcoinrpc to module search path:
import os
import sys
-sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), "python-bitcoinrpc"))
from decimal import Decimal, ROUND_DOWN
import json
@@ -18,7 +17,7 @@ import subprocess
import time
import re
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
+from authproxy import AuthServiceProxy, JSONRPCException
from util import *
def p2p_port(n):
diff --git a/qa/rpc-tests/txn_doublespend.py b/qa/rpc-tests/txn_doublespend.py
index fe9168944b..99dcdae552 100755
--- a/qa/rpc-tests/txn_doublespend.py
+++ b/qa/rpc-tests/txn_doublespend.py
@@ -7,10 +7,9 @@
# Test proper accounting with malleable transactions
#
-from test_framework import BitcoinTestFramework
-from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
from decimal import Decimal
-from util import *
import os
import shutil
diff --git a/qa/rpc-tests/wallet.py b/qa/rpc-tests/wallet.py
index b8965b3662..46dc7765b6 100755
--- a/qa/rpc-tests/wallet.py
+++ b/qa/rpc-tests/wallet.py
@@ -19,9 +19,8 @@
# k) test ResendWalletTransactions - create transactions, startup fourth node, make sure it syncs
#
-from test_framework import BitcoinTestFramework
-from util import *
-
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
class WalletTest (BitcoinTestFramework):
diff --git a/qa/rpc-tests/walletbackup.py b/qa/rpc-tests/walletbackup.py
index b9fc862234..da100d7fc0 100755
--- a/qa/rpc-tests/walletbackup.py
+++ b/qa/rpc-tests/walletbackup.py
@@ -33,8 +33,8 @@ Shutdown again, restore using importwallet,
and confirm again balances are correct.
"""
-from test_framework import BitcoinTestFramework
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
from random import randint
import logging
logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.INFO)
diff --git a/qa/rpc-tests/zapwallettxes.py b/qa/rpc-tests/zapwallettxes.py
index 045614e94c..0ec8ec5364 100755
--- a/qa/rpc-tests/zapwallettxes.py
+++ b/qa/rpc-tests/zapwallettxes.py
@@ -3,8 +3,8 @@
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
-from test_framework import BitcoinTestFramework
-from util import *
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import *
class ZapWalletTXesTest (BitcoinTestFramework):