mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
85fa6e4585
0c845e3f8995eb8dc543a63899e5633a46091b4e test: Fix wallet_listdescriptors.py if bdb is not compiled (Hennadii Stepanov) Pull request description: If build system is configured `--without-bdb`, the `wallet_listdescriptors.py` fails: ``` $ test/functional/wallet_listdescriptors.py --descriptors 2021-07-14T13:20:52.931000Z TestFramework (INFO): Initializing test directory /tmp/bitcoin_func_test_02p7o1c9 2021-07-14T13:21:23.377000Z TestFramework (INFO): Test that the command is not available for legacy wallets. 2021-07-14T13:21:23.381000Z TestFramework (ERROR): JSONRPC error Traceback (most recent call last): File "/home/hebasto/GitHub/bitcoin/test/functional/test_framework/test_framework.py", line 128, in main self.run_test() File "test/functional/wallet_listdescriptors.py", line 34, in run_test node.createwallet(wallet_name='w1', descriptors=False) File "/home/hebasto/GitHub/bitcoin/test/functional/test_framework/test_node.py", line 685, in createwallet return self.__getattr__('createwallet')(wallet_name, disable_private_keys, blank, passphrase, avoid_reuse, descriptors, load_on_startup, external_signer) File "/home/hebasto/GitHub/bitcoin/test/functional/test_framework/coverage.py", line 47, in __call__ return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs) File "/home/hebasto/GitHub/bitcoin/test/functional/test_framework/authproxy.py", line 146, in __call__ raise JSONRPCException(response['error'], status) test_framework.authproxy.JSONRPCException: Compiled without bdb support (required for legacy wallets) (-4) 2021-07-14T13:21:23.436000Z TestFramework (INFO): Stopping nodes 2021-07-14T13:21:24.092000Z TestFramework (WARNING): Not cleaning up dir /tmp/bitcoin_func_test_02p7o1c9 2021-07-14T13:21:24.092000Z TestFramework (ERROR): Test failed. Test logging available at /tmp/bitcoin_func_test_02p7o1c9/test_framework.log 2021-07-14T13:21:24.092000Z TestFramework (ERROR): 2021-07-14T13:21:24.092000Z TestFramework (ERROR): Hint: Call /home/hebasto/GitHub/bitcoin/test/functional/combine_logs.py '/tmp/bitcoin_func_test_02p7o1c9' to consolidate all logs 2021-07-14T13:21:24.092000Z TestFramework (ERROR): 2021-07-14T13:21:24.092000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log. 2021-07-14T13:21:24.092000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues 2021-07-14T13:21:24.092000Z TestFramework (ERROR): ``` This PR fixes this issue. Also see #20267. ACKs for top commit: achow101: ACK 0c845e3f8995eb8dc543a63899e5633a46091b4e Tree-SHA512: d7116a9ae30c7b7e3f55f55d2eea66f9e293c38d6757ed66d0477e4256ff5fedca5ddedafa0ef0c09f4dc1f7f973163e5a46090da26b067fdddbd9ea2ee76633
69 lines
2.6 KiB
Python
Executable File
69 lines
2.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# Copyright (c) 2014-2021 The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
"""Test the listdescriptors RPC."""
|
|
|
|
from test_framework.descriptors import (
|
|
descsum_create
|
|
)
|
|
from test_framework.test_framework import BitcoinTestFramework
|
|
from test_framework.util import (
|
|
assert_equal,
|
|
assert_raises_rpc_error,
|
|
)
|
|
|
|
|
|
class ListDescriptorsTest(BitcoinTestFramework):
|
|
def set_test_params(self):
|
|
self.num_nodes = 1
|
|
|
|
def skip_test_if_missing_module(self):
|
|
self.skip_if_no_wallet()
|
|
self.skip_if_no_sqlite()
|
|
|
|
# do not create any wallet by default
|
|
def init_wallet(self, i):
|
|
return
|
|
|
|
def run_test(self):
|
|
node = self.nodes[0]
|
|
assert_raises_rpc_error(-18, 'No wallet is loaded.', node.listdescriptors)
|
|
|
|
if self.is_bdb_compiled():
|
|
self.log.info('Test that the command is not available for legacy wallets.')
|
|
node.createwallet(wallet_name='w1', descriptors=False)
|
|
assert_raises_rpc_error(-4, 'listdescriptors is not available for non-descriptor wallets', node.listdescriptors)
|
|
|
|
self.log.info('Test the command for empty descriptors wallet.')
|
|
node.createwallet(wallet_name='w2', blank=True, descriptors=True)
|
|
assert_equal(0, len(node.get_wallet_rpc('w2').listdescriptors()))
|
|
|
|
self.log.info('Test the command for a default descriptors wallet.')
|
|
node.createwallet(wallet_name='w3', descriptors=True)
|
|
result = node.get_wallet_rpc('w3').listdescriptors()
|
|
assert_equal(2, len(result))
|
|
assert_equal(2, len([d for d in result if d['active']]))
|
|
assert_equal(1, len([d for d in result if d['internal']]))
|
|
for item in result:
|
|
assert item['desc'] != ''
|
|
assert item['next'] == 0
|
|
assert item['range'] == [0, 0]
|
|
assert item['timestamp'] is not None
|
|
|
|
self.log.info('Test non-active non-range combo descriptor')
|
|
node.createwallet(wallet_name='w4', blank=True, descriptors=True)
|
|
wallet = node.get_wallet_rpc('w4')
|
|
wallet.importdescriptors([{
|
|
'desc': descsum_create('combo(' + node.get_deterministic_priv_key().key + ')'),
|
|
'timestamp': 1296688602,
|
|
}])
|
|
expected = [{'active': False,
|
|
'desc': 'combo(038af19f35924e37ad7c3c8045d1e19b9b90b7310e08b892e620c253a102fe49f0)#2j2j0825',
|
|
'timestamp': 1296688602}]
|
|
assert_equal(expected, wallet.listdescriptors())
|
|
|
|
|
|
if __name__ == '__main__':
|
|
ListDescriptorsTest().main()
|