diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/functional_tests/blockchain.py | 2 | ||||
-rwxr-xr-x | tests/functional_tests/cold_signing.py | 4 | ||||
-rwxr-xr-x | tests/functional_tests/daemon_info.py | 2 | ||||
-rwxr-xr-x | tests/functional_tests/functional_tests_rpc.py | 6 | ||||
-rwxr-xr-x | tests/functional_tests/integrated_address.py | 2 | ||||
-rwxr-xr-x | tests/functional_tests/mining.py | 4 | ||||
-rwxr-xr-x | tests/functional_tests/multisig.py | 4 | ||||
-rwxr-xr-x | tests/functional_tests/proofs.py | 4 | ||||
-rwxr-xr-x | tests/functional_tests/sign_message.py | 2 | ||||
-rwxr-xr-x | tests/functional_tests/speed.py | 4 | ||||
-rw-r--r-- | tests/functional_tests/test_framework/__init__.py | 0 | ||||
-rw-r--r-- | tests/functional_tests/test_framework/daemon.py | 198 | ||||
-rw-r--r-- | tests/functional_tests/test_framework/rpc.py | 83 | ||||
-rw-r--r-- | tests/functional_tests/test_framework/wallet.py | 592 | ||||
-rwxr-xr-x | tests/functional_tests/transfer.py | 4 | ||||
-rwxr-xr-x | tests/functional_tests/txpool.py | 4 | ||||
-rwxr-xr-x | tests/functional_tests/wallet_address.py | 2 |
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): |