Changeset View
Changeset View
Standalone View
Standalone View
test/functional/interface_rpc.py
#!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
# Copyright (c) 2018 The Bitcoin Core developers | # Copyright (c) 2018 The Bitcoin Core developers | ||||
# Distributed under the MIT software license, see the accompanying | # Distributed under the MIT software license, see the accompanying | ||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php. | # file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
"""Tests some generic aspects of the RPC interface.""" | """Tests some generic aspects of the RPC interface.""" | ||||
from test_framework.test_framework import BitcoinTestFramework | from test_framework.test_framework import BitcoinTestFramework | ||||
from test_framework.util import assert_equal | from test_framework.util import assert_equal, assert_greater_than_or_equal | ||||
class RPCInterfaceTest(BitcoinTestFramework): | class RPCInterfaceTest(BitcoinTestFramework): | ||||
def set_test_params(self): | def set_test_params(self): | ||||
self.num_nodes = 1 | self.num_nodes = 1 | ||||
self.setup_clean_chain = True | self.setup_clean_chain = True | ||||
def test_getrpcinfo(self): | |||||
self.log.info("Testing getrpcinfo...") | |||||
info = self.nodes[0].getrpcinfo() | |||||
assert_equal(len(info['active_commands']), 1) | |||||
command = info['active_commands'][0] | |||||
assert_equal(command['method'], 'getrpcinfo') | |||||
assert_greater_than_or_equal(command['duration'], 0) | |||||
def test_batch_request(self): | def test_batch_request(self): | ||||
self.log.info("Testing basic JSON-RPC batch request...") | self.log.info("Testing basic JSON-RPC batch request...") | ||||
results = self.nodes[0].batch([ | results = self.nodes[0].batch([ | ||||
# A basic request that will work fine. | # A basic request that will work fine. | ||||
{"method": "getblockcount", "id": 1}, | {"method": "getblockcount", "id": 1}, | ||||
# Request that will fail. The whole batch request should still | # Request that will fail. The whole batch request should still | ||||
# work fine. | # work fine. | ||||
Show All 11 Lines | def test_batch_request(self): | ||||
assert_equal(result_by_id[2]['error']['code'], -32601) | assert_equal(result_by_id[2]['error']['code'], -32601) | ||||
assert_equal(result_by_id[2]['result'], None) | assert_equal(result_by_id[2]['result'], None) | ||||
assert_equal(result_by_id[3]['error'], None) | assert_equal(result_by_id[3]['error'], None) | ||||
assert result_by_id[3]['result'] is not None | assert result_by_id[3]['result'] is not None | ||||
def run_test(self): | def run_test(self): | ||||
self.test_getrpcinfo() | |||||
self.test_batch_request() | self.test_batch_request() | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
RPCInterfaceTest().main() | RPCInterfaceTest().main() |