aboutsummaryrefslogtreecommitdiff
path: root/tests/functional_tests
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2019-03-22 14:35:23 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2019-03-22 15:29:44 +0000
commit22b644f47ee2de8a962d00588579076e7a55455a (patch)
tree58f6a880906e24280ff057db54dd34b738ce0300 /tests/functional_tests
parentfunctional_tests: add balance tests (diff)
downloadmonero-22b644f47ee2de8a962d00588579076e7a55455a.tar.xz
functional_tests: move RPC API to utils, it is not test specific
Diffstat (limited to 'tests/functional_tests')
-rwxr-xr-xtests/functional_tests/blockchain.py2
-rwxr-xr-xtests/functional_tests/cold_signing.py4
-rwxr-xr-xtests/functional_tests/daemon_info.py2
-rwxr-xr-xtests/functional_tests/functional_tests_rpc.py6
-rwxr-xr-xtests/functional_tests/integrated_address.py2
-rwxr-xr-xtests/functional_tests/mining.py4
-rwxr-xr-xtests/functional_tests/multisig.py4
-rwxr-xr-xtests/functional_tests/proofs.py4
-rwxr-xr-xtests/functional_tests/sign_message.py2
-rwxr-xr-xtests/functional_tests/speed.py4
-rw-r--r--tests/functional_tests/test_framework/__init__.py0
-rw-r--r--tests/functional_tests/test_framework/daemon.py198
-rw-r--r--tests/functional_tests/test_framework/rpc.py83
-rw-r--r--tests/functional_tests/test_framework/wallet.py592
-rwxr-xr-xtests/functional_tests/transfer.py4
-rwxr-xr-xtests/functional_tests/txpool.py4
-rwxr-xr-xtests/functional_tests/wallet_address.py2
17 files changed, 25 insertions, 892 deletions
diff --git a/tests/functional_tests/blockchain.py b/tests/functional_tests/blockchain.py
index bdd08680f..d805fccda 100755
--- a/tests/functional_tests/blockchain.py
+++ b/tests/functional_tests/blockchain.py
@@ -41,7 +41,7 @@ Test the following RPCs:
"""
-from test_framework.daemon import Daemon
+from framework.daemon import Daemon
class BlockchainTest():
def run_test(self):
diff --git a/tests/functional_tests/cold_signing.py b/tests/functional_tests/cold_signing.py
index 2acdcb137..6895aec60 100755
--- a/tests/functional_tests/cold_signing.py
+++ b/tests/functional_tests/cold_signing.py
@@ -33,8 +33,8 @@ import time
"""Test cold tx signing
"""
-from test_framework.daemon import Daemon
-from test_framework.wallet import Wallet
+from framework.daemon import Daemon
+from framework.wallet import Wallet
class ColdSigningTest():
def run_test(self):
diff --git a/tests/functional_tests/daemon_info.py b/tests/functional_tests/daemon_info.py
index 94c3fc3ac..bd3528c3f 100755
--- a/tests/functional_tests/daemon_info.py
+++ b/tests/functional_tests/daemon_info.py
@@ -36,7 +36,7 @@ Test the following RPCs:
"""
-from test_framework.daemon import Daemon
+from framework.daemon import Daemon
class DaemonGetInfoTest():
def run_test(self):
diff --git a/tests/functional_tests/functional_tests_rpc.py b/tests/functional_tests/functional_tests_rpc.py
index aae546a6b..606b19e45 100755
--- a/tests/functional_tests/functional_tests_rpc.py
+++ b/tests/functional_tests/functional_tests_rpc.py
@@ -7,6 +7,7 @@ import subprocess
from signal import SIGTERM
import socket
import string
+import os
USAGE = 'usage: functional_tests_rpc.py <python> <srcdir> <builddir> [<tests-to-run> | all]'
DEFAULT_TESTS = ['daemon_info', 'blockchain', 'wallet_address', 'integrated_address', 'mining', 'transfer', 'txpool', 'multisig', 'cold_signing', 'sign_message', 'proofs']
@@ -56,6 +57,11 @@ for i in range(N_WALLETS):
print('Starting servers...')
try:
+ PYTHONPATH = os.environ['PYTHONPATH'] if 'PYTHONPATH' in os.environ else ''
+ if len(PYTHONPATH) > 0:
+ PYTHONPATH += ':'
+ PYTHONPATH += '../../utils/python-rpc'
+ os.environ['PYTHONPATH'] = PYTHONPATH
for i in range(len(command_lines)):
#print('Running: ' + str(command_lines[i]))
processes.append(subprocess.Popen(command_lines[i], stdout = outputs[i]))
diff --git a/tests/functional_tests/integrated_address.py b/tests/functional_tests/integrated_address.py
index d6976a116..338dd14ae 100755
--- a/tests/functional_tests/integrated_address.py
+++ b/tests/functional_tests/integrated_address.py
@@ -38,7 +38,7 @@ Test the following RPCs:
"""
-from test_framework.wallet import Wallet
+from framework.wallet import Wallet
class IntegratedAddressTest():
def run_test(self):
diff --git a/tests/functional_tests/mining.py b/tests/functional_tests/mining.py
index a94d59cba..1b189beb2 100755
--- a/tests/functional_tests/mining.py
+++ b/tests/functional_tests/mining.py
@@ -38,8 +38,8 @@ Test the following RPCs:
- mining_status
"""
-from test_framework.daemon import Daemon
-from test_framework.wallet import Wallet
+from framework.daemon import Daemon
+from framework.wallet import Wallet
class MiningTest():
def run_test(self):
diff --git a/tests/functional_tests/multisig.py b/tests/functional_tests/multisig.py
index 7cdddd009..a0e8551cd 100755
--- a/tests/functional_tests/multisig.py
+++ b/tests/functional_tests/multisig.py
@@ -33,8 +33,8 @@ import time
"""Test multisig transfers
"""
-from test_framework.daemon import Daemon
-from test_framework.wallet import Wallet
+from framework.daemon import Daemon
+from framework.wallet import Wallet
class MultisigTest():
def run_test(self):
diff --git a/tests/functional_tests/proofs.py b/tests/functional_tests/proofs.py
index 03d59b765..0a0b6304d 100755
--- a/tests/functional_tests/proofs.py
+++ b/tests/functional_tests/proofs.py
@@ -33,8 +33,8 @@ import time
"""Test misc proofs (tx key, send, receive, reserve)
"""
-from test_framework.daemon import Daemon
-from test_framework.wallet import Wallet
+from framework.daemon import Daemon
+from framework.wallet import Wallet
class ProofsTest():
def run_test(self):
diff --git a/tests/functional_tests/sign_message.py b/tests/functional_tests/sign_message.py
index 4a62fd733..4c3ec3588 100755
--- a/tests/functional_tests/sign_message.py
+++ b/tests/functional_tests/sign_message.py
@@ -38,7 +38,7 @@ Test the following RPCs:
"""
-from test_framework.wallet import Wallet
+from framework.wallet import Wallet
class MessageSigningTest():
def run_test(self):
diff --git a/tests/functional_tests/speed.py b/tests/functional_tests/speed.py
index 0ce90f939..bd8892df8 100755
--- a/tests/functional_tests/speed.py
+++ b/tests/functional_tests/speed.py
@@ -42,8 +42,8 @@ import time
from time import sleep
from decimal import Decimal
-from test_framework.daemon import Daemon
-from test_framework.wallet import Wallet
+from framework.daemon import Daemon
+from framework.wallet import Wallet
class SpeedTest():
diff --git a/tests/functional_tests/test_framework/__init__.py b/tests/functional_tests/test_framework/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/functional_tests/test_framework/__init__.py
+++ /dev/null
diff --git a/tests/functional_tests/test_framework/daemon.py b/tests/functional_tests/test_framework/daemon.py
deleted file mode 100644
index 11d5f5845..000000000
--- a/tests/functional_tests/test_framework/daemon.py
+++ /dev/null
@@ -1,198 +0,0 @@
-# Copyright (c) 2018 The Monero Project
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice, this list of
-# conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright notice, this list
-# of conditions and the following disclaimer in the documentation and/or other
-# materials provided with the distribution.
-#
-# 3. Neither the name of the copyright holder nor the names of its contributors may be
-# used to endorse or promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
-# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-"""Daemon class to make rpc calls and store state."""
-
-from .rpc import JSONRPC
-
-class Daemon(object):
-
- def __init__(self, protocol='http', host='127.0.0.1', port=0, idx=0):
- self.rpc = JSONRPC('{protocol}://{host}:{port}'.format(protocol=protocol, host=host, port=port if port else 18180+idx))
-
- def getblocktemplate(self, address):
- getblocktemplate = {
- 'method': 'getblocktemplate',
- 'params': {
- 'wallet_address': address,
- 'reserve_size' : 1
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(getblocktemplate)
-
- def send_raw_transaction(self, tx_as_hex, do_not_relay = False):
- send_raw_transaction = {
- 'tx_as_hex': tx_as_hex,
- 'do_not_relay': do_not_relay,
- }
- return self.rpc.send_request("/send_raw_transaction", send_raw_transaction)
-
- def submitblock(self, block):
- submitblock = {
- 'method': 'submitblock',
- 'params': [ block ],
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(submitblock)
-
- def getblock(self, height=0):
- getblock = {
- 'method': 'getblock',
- 'params': {
- 'height': height
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(getblock)
-
- def getlastblockheader(self):
- getlastblockheader = {
- 'method': 'getlastblockheader',
- 'params': {
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(getlastblockheader)
-
- def getblockheaderbyhash(self, hash):
- getblockheaderbyhash = {
- 'method': 'getblockheaderbyhash',
- 'params': {
- 'hash': hash,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(getblockheaderbyhash)
-
- def getblockheaderbyheight(self, height):
- getblockheaderbyheight = {
- 'method': 'getblockheaderbyheight',
- 'params': {
- 'height': height,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(getblockheaderbyheight)
-
- def get_connections(self):
- get_connections = {
- 'method': 'get_connections',
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(get_connections)
-
- def get_info(self):
- get_info = {
- 'method': 'get_info',
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(get_info)
-
- def hard_fork_info(self):
- hard_fork_info = {
- 'method': 'hard_fork_info',
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(hard_fork_info)
-
- def generateblocks(self, address, blocks=1):
- generateblocks = {
- 'method': 'generateblocks',
- 'params': {
- 'amount_of_blocks' : blocks,
- 'reserve_size' : 20,
- 'wallet_address': address
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(generateblocks)
-
- def get_height(self):
- get_height = {
- 'method': 'get_height',
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_request("/get_height", get_height)
-
- def pop_blocks(self, nblocks = 1):
- pop_blocks = {
- 'nblocks' : nblocks,
- }
- return self.rpc.send_request("/pop_blocks", pop_blocks)
-
- def start_mining(self, miner_address, threads_count = 0, do_background_mining = False, ignore_battery = False):
- start_mining = {
- 'miner_address' : miner_address,
- 'threads_count' : threads_count,
- 'do_background_mining' : do_background_mining,
- 'ignore_battery' : ignore_battery,
- }
- return self.rpc.send_request('/start_mining', start_mining)
-
- def stop_mining(self):
- stop_mining = {
- }
- return self.rpc.send_request('/stop_mining', stop_mining)
-
- def mining_status(self):
- mining_status = {
- }
- return self.rpc.send_request('/mining_status', mining_status)
-
- def get_transaction_pool(self):
- get_transaction_pool = {
- }
- return self.rpc.send_request('/get_transaction_pool', get_transaction_pool)
-
- def get_transaction_pool_hashes(self):
- get_transaction_pool_hashes = {
- }
- return self.rpc.send_request('/get_transaction_pool_hashes', get_transaction_pool_hashes)
-
- def flush_txpool(self, txids = []):
- flush_txpool = {
- 'method': 'flush_txpool',
- 'params': {
- 'txids': txids
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(flush_txpool)
diff --git a/tests/functional_tests/test_framework/rpc.py b/tests/functional_tests/test_framework/rpc.py
deleted file mode 100644
index b857be4d2..000000000
--- a/tests/functional_tests/test_framework/rpc.py
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright (c) 2018 The Monero Project
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice, this list of
-# conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright notice, this list
-# of conditions and the following disclaimer in the documentation and/or other
-# materials provided with the distribution.
-#
-# 3. Neither the name of the copyright holder nor the names of its contributors may be
-# used to endorse or promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
-# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import requests
-import json
-
-class Response(dict):
- def __init__(self, d):
- for k in d.keys():
- if type(d[k]) == dict:
- self[k] = Response(d[k])
- elif type(d[k]) == list:
- self[k] = []
- for i in range(len(d[k])):
- if type(d[k][i]) == dict:
- self[k].append(Response(d[k][i]))
- else:
- self[k].append(d[k][i])
- else:
- self[k] = d[k]
-
- def __getattr__(self, key):
- return self[key]
- def __setattr__(self, key, value):
- self[key] = value
- def __eq__(self, other):
- if type(other) == dict:
- return self == Response(other)
- if self.keys() != other.keys():
- return False
- for k in self.keys():
- if self[k] != other[k]:
- return False
- return True
-
-class JSONRPC(object):
- def __init__(self, url):
- self.url = url
-
- def send_request(self, path, inputs, result_field = None):
- res = requests.post(
- self.url + path,
- data=json.dumps(inputs),
- headers={'content-type': 'application/json'})
- res = res.json()
-
- assert 'error' not in res, res
-
- if result_field:
- res = res[result_field]
-
- return Response(res)
-
- def send_json_rpc_request(self, inputs):
- return self.send_request("/json_rpc", inputs, 'result')
-
-
-
diff --git a/tests/functional_tests/test_framework/wallet.py b/tests/functional_tests/test_framework/wallet.py
deleted file mode 100644
index e9f13667b..000000000
--- a/tests/functional_tests/test_framework/wallet.py
+++ /dev/null
@@ -1,592 +0,0 @@
-# Copyright (c) 2018 The Monero Project
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice, this list of
-# conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright notice, this list
-# of conditions and the following disclaimer in the documentation and/or other
-# materials provided with the distribution.
-#
-# 3. Neither the name of the copyright holder nor the names of its contributors may be
-# used to endorse or promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
-# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-"""Daemon class to make rpc calls and store state."""
-
-from .rpc import JSONRPC
-
-class Wallet(object):
-
- def __init__(self, protocol='http', host='127.0.0.1', port=0, idx=0):
- self.rpc = JSONRPC('{protocol}://{host}:{port}'.format(protocol=protocol, host=host, port=port if port else 18090+idx))
-
- def make_uniform_destinations(self, address, transfer_amount, transfer_number_of_destinations=1):
- destinations = []
- for i in range(transfer_number_of_destinations):
- destinations.append({"amount":transfer_amount,"address":address})
- return destinations
-
- def make_destinations(self, addresses, transfer_amounts):
- destinations = []
- for i in range(len(addresses)):
- destinations.append({'amount':transfer_amounts[i],'address':addresses[i]})
- return destinations
-
- def transfer(self, destinations, account_index = 0, subaddr_indices = [], priority = 0, ring_size = 0, unlock_time = 0, payment_id = '', get_tx_key = True, do_not_relay = False, get_tx_hex = False, get_tx_metadata = False):
- transfer = {
- 'method': 'transfer',
- 'params': {
- 'destinations': destinations,
- 'account_index': account_index,
- 'subaddr_indices': subaddr_indices,
- 'priority': priority,
- 'ring_size' : ring_size,
- 'unlock_time' : unlock_time,
- 'payment_id' : payment_id,
- 'get_tx_key' : get_tx_key,
- 'do_not_relay' : do_not_relay,
- 'get_tx_hex' : get_tx_hex,
- 'get_tx_metadata' : get_tx_metadata,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(transfer)
-
- def transfer_split(self, destinations, account_index = 0, subaddr_indices = [], priority = 0, ring_size = 0, unlock_time = 0, payment_id = '', get_tx_key = True, do_not_relay = False, get_tx_hex = False, get_tx_metadata = False):
- transfer = {
- "method": "transfer_split",
- "params": {
- 'destinations': destinations,
- 'account_index': account_index,
- 'subaddr_indices': subaddr_indices,
- 'priority': priority,
- 'ring_size' : ring_size,
- 'unlock_time' : unlock_time,
- 'payment_id' : payment_id,
- 'get_tx_key' : get_tx_key,
- 'do_not_relay' : do_not_relay,
- 'get_tx_hex' : get_tx_hex,
- 'get_tx_metadata' : get_tx_metadata,
- },
- "jsonrpc": "2.0",
- "id": "0"
- }
- return self.rpc.send_json_rpc_request(transfer)
-
- def get_bulk_payments(self, payment_ids = [], min_block_height = 0):
- get_bulk_payments = {
- 'method': 'get_bulk_payments',
- 'params': {
- 'payment_ids': payment_ids,
- 'min_block_height': min_block_height,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(get_bulk_payments)
-
- def describe_transfer(self, unsigned_txset):
- describe_transfer = {
- 'method': 'describe_transfer',
- 'params': {
- 'unsigned_txset': unsigned_txset,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(describe_transfer)
-
- def create_wallet(self, index=''):
- create_wallet = {
- 'method': 'create_wallet',
- 'params': {
- 'filename': 'testWallet' + index,
- 'password' : '',
- 'language' : 'English'
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(create_wallet)
-
- def get_balance(self, account_index = 0, address_indices = [], all_accounts = False):
- get_balance = {
- 'method': 'get_balance',
- 'params': {
- 'account_index': account_index,
- 'address_indices': address_indices,
- 'all_accounts': all_accounts,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(get_balance)
-
- def sweep_dust(self):
- sweep_dust = {
- 'method': 'sweep_dust',
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(sweep_dust)
-
- def sweep_all(self, address):
- sweep_all = {
- 'method': 'sweep_all',
- 'params' : {
- 'address' : ''
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(sweep_all)
-
- def get_address(self, account_index = 0, subaddresses = []):
- get_address = {
- 'method': 'get_address',
- 'params' : {
- 'account_index' : account_index,
- 'address_index': subaddresses
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(get_address)
-
- def create_account(self, label = ""):
- create_account = {
- 'method': 'create_account',
- 'params' : {
- 'label': label
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(create_account)
-
- def create_address(self, account_index = 0, label = ""):
- create_address = {
- 'method': 'create_address',
- 'params' : {
- 'account_index': account_index,
- 'label': label
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(create_address)
-
- def label_address(self, subaddress_index, label):
- label_address = {
- 'method': 'label_address',
- 'params' : {
- 'index': { 'major': subaddress_index[0], 'minor': subaddress_index[1]},
- 'label': label
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(label_address)
-
- def label_account(self, account_index, label):
- label_account = {
- 'method': 'label_account',
- 'params' : {
- 'account_index': account_index,
- 'label': label
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(label_account)
-
- def get_address_index(self, address):
- get_address_index = {
- 'method': 'get_address_index',
- 'params' : {
- 'address': address
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(get_address_index)
-
- def query_key(self, key_type):
- query_key = {
- 'method': 'query_key',
- 'params' : {
- 'key_type': key_type
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(query_key)
-
- def restore_deterministic_wallet(self, seed = '', seed_offset = '', filename = '', restore_height = 0, password = '', language = ''):
- restore_deterministic_wallet = {
- 'method': 'restore_deterministic_wallet',
- 'params' : {
- 'restore_height': restore_height,
- 'filename': filename,
- 'seed': seed,
- 'seed_offset': seed_offset,
- 'password': password,
- 'language': language
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(restore_deterministic_wallet)
-
- def generate_from_keys(self, restore_height = 0, filename = "", password = "", address = "", spendkey = "", viewkey = ""):
- generate_from_keys = {
- 'method': 'generate_from_keys',
- 'params' : {
- 'restore_height': restore_height,
- 'filename': filename,
- 'address': address,
- 'spendkey': spendkey,
- 'viewkey': viewkey,
- 'password': password,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(generate_from_keys)
-
- def close_wallet(self):
- close_wallet = {
- 'method': 'close_wallet',
- 'params' : {
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(close_wallet)
-
- def refresh(self):
- refresh = {
- 'method': 'refresh',
- 'params' : {
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(refresh)
-
- def incoming_transfers(self, transfer_type='all', account_index = 0, subaddr_indices = []):
- incoming_transfers = {
- 'method': 'incoming_transfers',
- 'params' : {
- 'transfer_type': transfer_type,
- 'account_index': account_index,
- 'subaddr_indices': subaddr_indices,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(incoming_transfers)
-
- def get_transfers(self, in_ = True, out = True, pending = True, failed = True, pool = True, min_height = None, max_height = None, account_index = 0, subaddr_indices = [], all_accounts = False):
- get_transfers = {
- 'method': 'get_transfers',
- 'params' : {
- 'in': in_,
- 'out': out,
- 'pending': pending,
- 'failed': failed,
- 'pool': pool,
- 'min_height': min_height,
- 'max_height': max_height,
- 'filter_by_height': min_height or max_height,
- 'account_index': account_index,
- 'subaddr_indices': subaddr_indices,
- 'all_accounts': all_accounts,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(get_transfers)
-
- def make_integrated_address(self, standard_address = '', payment_id = ''):
- make_integrated_address = {
- 'method': 'make_integrated_address',
- 'params' : {
- 'standard_address': standard_address,
- 'payment_id': payment_id,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(make_integrated_address)
-
- def split_integrated_address(self, integrated_address):
- split_integrated_address = {
- 'method': 'split_integrated_address',
- 'params' : {
- 'integrated_address': integrated_address,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(split_integrated_address)
-
- def auto_refresh(self, enable, period = 0):
- auto_refresh = {
- 'method': 'auto_refresh',
- 'params' : {
- 'enable': enable,
- 'period': period
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(auto_refresh)
-
- def set_daemon(self, address, trusted = False, ssl_support = "autodetect", ssl_private_key_path = "", ssl_certificate_path = "", ssl_allowed_certificates = [], ssl_allowed_fingerprints = [], ssl_allow_any_cert = False):
- set_daemon = {
- 'method': 'set_daemon',
- 'params' : {
- 'address': address,
- 'trusted': trusted,
- 'ssl_support': ssl_support,
- 'ssl_private_key_path': ssl_private_key_path,
- 'ssl_certificate_path': ssl_certificate_path,
- 'ssl_allowed_certificates': ssl_allowed_certificates,
- 'ssl_allowed_fingerprints': ssl_allowed_fingerprints,
- 'ssl_allow_any_cert': ssl_allow_any_cert,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(set_daemon)
-
- def is_multisig(self):
- is_multisig = {
- 'method': 'is_multisig',
- 'params' : {
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(is_multisig)
-
- def prepare_multisig(self):
- prepare_multisig = {
- 'method': 'prepare_multisig',
- 'params' : {
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(prepare_multisig)
-
- def make_multisig(self, multisig_info, threshold, password = ''):
- make_multisig = {
- 'method': 'make_multisig',
- 'params' : {
- 'multisig_info': multisig_info,
- 'threshold': threshold,
- 'password': password,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(make_multisig)
-
- def exchange_multisig_keys(self, multisig_info, password = ''):
- exchange_multisig_keys = {
- 'method': 'exchange_multisig_keys',
- 'params' : {
- 'multisig_info': multisig_info,
- 'password': password,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(exchange_multisig_keys)
-
- def export_multisig_info(self):
- export_multisig_info = {
- 'method': 'export_multisig_info',
- 'params' : {
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(export_multisig_info)
-
- def import_multisig_info(self, info = []):
- import_multisig_info = {
- 'method': 'import_multisig_info',
- 'params' : {
- 'info': info
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(import_multisig_info)
-
- def sign_multisig(self, tx_data_hex):
- sign_multisig = {
- 'method': 'sign_multisig',
- 'params' : {
- 'tx_data_hex': tx_data_hex
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(sign_multisig)
-
- def submit_multisig(self, tx_data_hex):
- submit_multisig = {
- 'method': 'submit_multisig',
- 'params' : {
- 'tx_data_hex': tx_data_hex
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(submit_multisig)
-
- def sign_transfer(self, unsigned_txset, export_raw = False, get_tx_keys = False):
- sign_transfer = {
- 'method': 'sign_transfer',
- 'params' : {
- 'unsigned_txset': unsigned_txset,
- 'export_raw': export_raw,
- 'get_tx_keys': get_tx_keys,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(sign_transfer)
-
- def submit_transfer(self, tx_data_hex):
- submit_transfer = {
- 'method': 'submit_transfer',
- 'params' : {
- 'tx_data_hex': tx_data_hex,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(submit_transfer)
-
- def get_tx_key(self, txid):
- get_tx_key = {
- 'method': 'get_tx_key',
- 'params' : {
- 'txid': txid,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(get_tx_key)
-
- def check_tx_key(self, txid = '', tx_key = '', address = ''):
- check_tx_key = {
- 'method': 'check_tx_key',
- 'params' : {
- 'txid': txid,
- 'tx_key': tx_key,
- 'address': address,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(check_tx_key)
-
- def get_tx_proof(self, txid = '', address = '', message = ''):
- get_tx_proof = {
- 'method': 'get_tx_proof',
- 'params' : {
- 'txid': txid,
- 'address': address,
- 'message': message,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(get_tx_proof)
-
- def check_tx_proof(self, txid = '', address = '', message = '', signature = ''):
- check_tx_proof = {
- 'method': 'check_tx_proof',
- 'params' : {
- 'txid': txid,
- 'address': address,
- 'message': message,
- 'signature': signature,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(check_tx_proof)
-
- def get_reserve_proof(self, all_ = True, account_index = 0, amount = 0, message = ''):
- get_reserve_proof = {
- 'method': 'get_reserve_proof',
- 'params' : {
- 'all': all_,
- 'account_index': account_index,
- 'amount': amount,
- 'message': message,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(get_reserve_proof)
-
- def check_reserve_proof(self, address = '', message = '', signature = ''):
- check_reserve_proof = {
- 'method': 'check_reserve_proof',
- 'params' : {
- 'address': address,
- 'message': message,
- 'signature': signature,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(check_reserve_proof)
-
- def sign(self, data):
- sign = {
- 'method': 'sign',
- 'params' : {
- 'data': data,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(sign)
-
- def verify(self, data, address, signature):
- verify = {
- 'method': 'verify',
- 'params' : {
- 'data': data,
- 'address': address,
- 'signature': signature,
- },
- 'jsonrpc': '2.0',
- 'id': '0'
- }
- return self.rpc.send_json_rpc_request(verify)
diff --git a/tests/functional_tests/transfer.py b/tests/functional_tests/transfer.py
index fc582e618..b7a85f1d6 100755
--- a/tests/functional_tests/transfer.py
+++ b/tests/functional_tests/transfer.py
@@ -33,8 +33,8 @@ import time
"""Test simple transfers
"""
-from test_framework.daemon import Daemon
-from test_framework.wallet import Wallet
+from framework.daemon import Daemon
+from framework.wallet import Wallet
class TransferTest():
def run_test(self):
diff --git a/tests/functional_tests/txpool.py b/tests/functional_tests/txpool.py
index 419bd925c..71109c9e5 100755
--- a/tests/functional_tests/txpool.py
+++ b/tests/functional_tests/txpool.py
@@ -33,8 +33,8 @@ import time
"""Test txpool
"""
-from test_framework.daemon import Daemon
-from test_framework.wallet import Wallet
+from framework.daemon import Daemon
+from framework.wallet import Wallet
class TransferTest():
def run_test(self):
diff --git a/tests/functional_tests/wallet_address.py b/tests/functional_tests/wallet_address.py
index acd7b6821..66a1633ca 100755
--- a/tests/functional_tests/wallet_address.py
+++ b/tests/functional_tests/wallet_address.py
@@ -37,7 +37,7 @@ Test the following RPCs:
"""
-from test_framework.wallet import Wallet
+from framework.wallet import Wallet
class WalletAddressTest():
def run_test(self):