From 6af6d9b23dae4edd20c3dad49c835caabf3909b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Barbosa?= Date: Wed, 22 Aug 2018 01:33:34 +0100 Subject: [PATCH] test: Add tests for RPC help --- test/functional/rpc_help.py | 31 +++++++++++++++++++++++++++++++ test/functional/test_runner.py | 1 + 2 files changed, 32 insertions(+) create mode 100755 test/functional/rpc_help.py diff --git a/test/functional/rpc_help.py b/test/functional/rpc_help.py new file mode 100755 index 000000000..e878ded25 --- /dev/null +++ b/test/functional/rpc_help.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +# Copyright (c) 2018 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 RPC help output.""" + +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import assert_equal, assert_raises_rpc_error + +class HelpRpcTest(BitcoinTestFramework): + def set_test_params(self): + self.num_nodes = 1 + + def run_test(self): + node = self.nodes[0] + + # wrong argument count + assert_raises_rpc_error(-1, 'help', node.help, 'foo', 'bar') + + # invalid argument + assert_raises_rpc_error(-1, 'JSON value is not a string as expected', node.help, 0) + + # help of unknown command + assert_equal(node.help('foo'), 'help: unknown command: foo') + + # command titles + titles = [line[3:-3] for line in node.help().splitlines() if line.startswith('==')] + assert_equal(titles, ['Blockchain', 'Control', 'Generating', 'Mining', 'Network', 'Rawtransactions', 'Util', 'Wallet', 'Zmq']) + +if __name__ == '__main__': + HelpRpcTest().main() diff --git a/test/functional/test_runner.py b/test/functional/test_runner.py index feea2a327..13c687fd9 100755 --- a/test/functional/test_runner.py +++ b/test/functional/test_runner.py @@ -152,6 +152,7 @@ BASE_SCRIPTS = [ 'p2p_node_network_limited.py', 'feature_blocksdir.py', 'feature_config_args.py', + 'rpc_help.py', 'feature_help.py', # Don't append tests at the end to avoid merge conflicts # Put them in a random line within the section that fits their approximate run-time