mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-03 09:56:38 -05:00
Merge #18653: test: add coverage for bitcoin-cli -rpcwait
c28c7b882b
test: add -getinfo "unlocked_until" and "headers" coverage (Jon Atack)bb13f46fb1
test: verify cli.getwalletinfo in wallet section (Jon Atack)becc8b9747
test: verify bitcoin-cli -version with node stopped (Jon Atack)727b67e7b8
test: add coverage for bitcoin-cli -rpcwait (Jon Atack) Pull request description: and other coverage improvements in `interface-bitcoin_cli.py` ACKs for top commit: kristapsk: ACKc28c7b882b
Tree-SHA512: c3ac73b673872cba05496e3f9debc2c4dfa4291c6426bf0be9bb0242035613b25c0aecebb39abb14a1d87b13e1d28a5f34b21d4b77d93de56c679a8be92bbe82
This commit is contained in:
commit
661e8df1b6
1 changed files with 25 additions and 15 deletions
|
@ -25,15 +25,6 @@ class TestBitcoinCli(BitcoinTestFramework):
|
|||
"""Main test logic"""
|
||||
self.nodes[0].generate(BLOCKS)
|
||||
|
||||
cli_response = self.nodes[0].cli("-version").send_cli()
|
||||
assert "{} RPC client version".format(self.config['environment']['PACKAGE_NAME']) in cli_response
|
||||
|
||||
self.log.info("Compare responses from getwalletinfo RPC and `bitcoin-cli getwalletinfo`")
|
||||
if self.is_wallet_compiled():
|
||||
cli_response = self.nodes[0].cli.getwalletinfo()
|
||||
rpc_response = self.nodes[0].getwalletinfo()
|
||||
assert_equal(cli_response, rpc_response)
|
||||
|
||||
self.log.info("Compare responses from getblockchaininfo RPC and `bitcoin-cli getblockchaininfo`")
|
||||
cli_response = self.nodes[0].cli.getblockchaininfo()
|
||||
rpc_response = self.nodes[0].getblockchaininfo()
|
||||
|
@ -55,31 +46,50 @@ class TestBitcoinCli(BitcoinTestFramework):
|
|||
self.log.info("Test connecting with non-existing RPC cookie file")
|
||||
assert_raises_process_error(1, "Could not locate RPC credentials", self.nodes[0].cli('-rpccookiefile=does-not-exist', '-rpcpassword=').echo)
|
||||
|
||||
self.log.info("Make sure that -getinfo with arguments fails")
|
||||
self.log.info("Test -getinfo with arguments fails")
|
||||
assert_raises_process_error(1, "-getinfo takes no arguments", self.nodes[0].cli('-getinfo').help)
|
||||
|
||||
self.log.info("Test that -getinfo returns the expected network and blockchain info")
|
||||
self.log.info("Test -getinfo returns expected network and blockchain info")
|
||||
if self.is_wallet_compiled():
|
||||
self.nodes[0].encryptwallet(password)
|
||||
cli_get_info = self.nodes[0].cli('-getinfo').send_cli()
|
||||
network_info = self.nodes[0].getnetworkinfo()
|
||||
blockchain_info = self.nodes[0].getblockchaininfo()
|
||||
|
||||
assert_equal(cli_get_info['version'], network_info['version'])
|
||||
assert_equal(cli_get_info['blocks'], blockchain_info['blocks'])
|
||||
assert_equal(cli_get_info['headers'], blockchain_info['headers'])
|
||||
assert_equal(cli_get_info['timeoffset'], network_info['timeoffset'])
|
||||
assert_equal(cli_get_info['connections'], network_info['connections'])
|
||||
assert_equal(cli_get_info['proxy'], network_info['networks'][0]['proxy'])
|
||||
assert_equal(cli_get_info['difficulty'], blockchain_info['difficulty'])
|
||||
assert_equal(cli_get_info['chain'], blockchain_info['chain'])
|
||||
|
||||
if self.is_wallet_compiled():
|
||||
self.log.info("Test that -getinfo returns the expected wallet info")
|
||||
self.log.info("Test -getinfo and bitcoin-cli getwalletinfo return expected wallet info")
|
||||
assert_equal(cli_get_info['balance'], BALANCE)
|
||||
wallet_info = self.nodes[0].getwalletinfo()
|
||||
assert_equal(cli_get_info['keypoolsize'], wallet_info['keypoolsize'])
|
||||
assert_equal(cli_get_info['unlocked_until'], wallet_info['unlocked_until'])
|
||||
assert_equal(cli_get_info['paytxfee'], wallet_info['paytxfee'])
|
||||
assert_equal(cli_get_info['relayfee'], network_info['relayfee'])
|
||||
# unlocked_until is not tested because the wallet is not encrypted
|
||||
assert_equal(self.nodes[0].cli.getwalletinfo(), wallet_info)
|
||||
else:
|
||||
self.log.info("*** Wallet not compiled; -getinfo wallet tests skipped")
|
||||
self.log.info("*** Wallet not compiled; cli getwalletinfo and -getinfo wallet tests skipped")
|
||||
|
||||
self.stop_node(0)
|
||||
|
||||
self.log.info("Test -version with node stopped")
|
||||
cli_response = self.nodes[0].cli("-version").send_cli()
|
||||
assert "{} RPC client version".format(self.config['environment']['PACKAGE_NAME']) in cli_response
|
||||
|
||||
self.log.info("Test -rpcwait option waits for RPC connection instead of failing")
|
||||
# Start node without RPC connection.
|
||||
self.nodes[0].start()
|
||||
# Verify failure without -rpcwait.
|
||||
assert_raises_process_error(1, "Could not connect to the server", self.nodes[0].cli('getblockcount').echo)
|
||||
# Verify success using -rpcwait.
|
||||
assert_equal(BLOCKS, self.nodes[0].cli('-rpcwait', 'getblockcount').send_cli())
|
||||
self.nodes[0].wait_for_rpc_connection()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Add table
Reference in a new issue