Skip to content

Commit c9f690b

Browse files
Merge #7246: test: add functional tests for -deprecatedrpc=permissive_bool
02c4ed4 test: expand permissive_bool test coverage (UdjinM6) 00d18f8 test: add functional tests for -deprecatedrpc=permissive_bool (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented Follow-up for #7099 ## What was done? Added functional tests for #7099 ## How Has This Been Tested? See new functional tests inside `rpc_deprecated.py` ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK 02c4ed4 Tree-SHA512: 758cb89d4f9afa20171084b7ded8054177266539ea7ca0e868ce77ab5b62b151340ec98465632743caa22acd5f61d5d6dca3bb128c9f4887a48d4f43694c8ecf
2 parents d1eab6c + 02c4ed4 commit c9f690b

1 file changed

Lines changed: 36 additions & 3 deletions

File tree

test/functional/rpc_deprecated.py

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
55
"""Test deprecation of RPC calls."""
66
from test_framework.test_framework import BitcoinTestFramework
7-
# from test_framework.util import assert_raises_rpc_error
7+
from test_framework.util import assert_raises_rpc_error, assert_equal
88

99
class DeprecatedRpcTest(BitcoinTestFramework):
1010
def set_test_params(self):
1111
self.num_nodes = 2
1212
self.setup_clean_chain = True
13-
self.extra_args = [[], []]
13+
self.extra_args = [[], ["-deprecatedrpc=permissive_bool"]]
1414

1515
def run_test(self):
1616
# This test should be used to verify correct behaviour of deprecated
@@ -23,7 +23,40 @@ def run_test(self):
2323
# self.log.info("Test generate RPC")
2424
# assert_raises_rpc_error(-32, 'The wallet generate rpc method is deprecated', self.nodes[0].rpc.generate, 1)
2525
# self.generate(self.nodes[1], 1)
26-
self.log.info("No tested deprecated RPC methods")
26+
# self.log.info("No tested deprecated RPC methods")
27+
self.test_permissive_bool()
28+
29+
def test_permissive_bool(self):
30+
self.log.info("Test -deprecatedrpc=permissive_bool")
31+
self.generate(self.nodes[0], 1)
32+
33+
self.log.info("Node 0 (strict): JSON boolean accepted, legacy types rejected")
34+
assert_equal([], self.nodes[0].protx("list", "valid", True))
35+
assert_equal([], self.nodes[0].protx("list", "valid", False))
36+
assert_raises_rpc_error(-8, 'detailed must be a JSON boolean. Pass -deprecatedrpc=permissive_bool to allow legacy boolean parsing.', self.nodes[0].protx, "list", "valid", 1)
37+
assert_raises_rpc_error(-8, 'detailed must be a JSON boolean. Pass -deprecatedrpc=permissive_bool to allow legacy boolean parsing.', self.nodes[0].protx, "list", "valid", "1")
38+
assert_raises_rpc_error(-8, 'detailed must be a JSON boolean. Pass -deprecatedrpc=permissive_bool to allow legacy boolean parsing.', self.nodes[0].protx, "list", "valid", 0)
39+
assert_raises_rpc_error(-8, 'detailed must be a JSON boolean. Pass -deprecatedrpc=permissive_bool to allow legacy boolean parsing.', self.nodes[0].protx, "list", "valid", "0")
40+
assert_raises_rpc_error(-8, 'detailed must be a JSON boolean. Pass -deprecatedrpc=permissive_bool to allow legacy boolean parsing.', self.nodes[0].protx, "list", "valid", "true")
41+
assert_raises_rpc_error(-8, 'detailed must be a JSON boolean. Pass -deprecatedrpc=permissive_bool to allow legacy boolean parsing.', self.nodes[0].protx, "list", "valid", "false")
42+
assert_raises_rpc_error(-8, 'detailed must be a JSON boolean. Pass -deprecatedrpc=permissive_bool to allow legacy boolean parsing.', self.nodes[0].protx, "list", "valid", "yes")
43+
assert_raises_rpc_error(-8, 'detailed must be a JSON boolean. Pass -deprecatedrpc=permissive_bool to allow legacy boolean parsing.', self.nodes[0].protx, "list", "valid", "no")
44+
45+
self.log.info("Node 1 (permissive): JSON boolean and legacy types accepted")
46+
assert_equal([], self.nodes[1].protx("list", "valid", True))
47+
assert_equal([], self.nodes[1].protx("list", "valid", 1))
48+
assert_equal([], self.nodes[1].protx("list", "valid", "1"))
49+
assert_equal([], self.nodes[1].protx("list", "valid", False))
50+
assert_equal([], self.nodes[1].protx("list", "valid", 0))
51+
assert_equal([], self.nodes[1].protx("list", "valid", "0"))
52+
assert_equal([], self.nodes[1].protx("list", "valid", "true"))
53+
assert_equal([], self.nodes[1].protx("list", "valid", "false"))
54+
assert_equal([], self.nodes[1].protx("list", "valid", "yes"))
55+
assert_equal([], self.nodes[1].protx("list", "valid", "no"))
56+
57+
self.log.info("Node 1 (permissive): invalid values still rejected")
58+
assert_raises_rpc_error(-8, "detailed must be true, false, yes, no, 1 or 0 (not '2')", self.nodes[1].protx, "list", "valid", 2)
59+
assert_raises_rpc_error(-8, "detailed must be true, false, yes, no, 1 or 0 (not 'notabool')", self.nodes[1].protx, "list", "valid", "notabool")
2760

2861
if __name__ == '__main__':
2962
DeprecatedRpcTest().main()

0 commit comments

Comments
 (0)