Skip to content

Commit 02c4ed4

Browse files
UdjinM6claude
authored andcommitted
test: expand permissive_bool test coverage
Add full coverage for the permissive_bool legacy input surface: - Test falsy values (False, 0, "0") in both strict and permissive modes - Test string aliases ("yes", "no") in both modes - Test invalid values (2, "notabool") are still rejected in permissive mode - Add log.info calls for test sections - Comment out stale "No tested deprecated RPC methods" message Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 00d18f8 commit 02c4ed4

1 file changed

Lines changed: 23 additions & 3 deletions

File tree

test/functional/rpc_deprecated.py

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ def set_test_params(self):
1313
self.extra_args = [[], ["-deprecatedrpc=permissive_bool"]]
1414

1515
def run_test(self):
16-
self.test_permissive_bool()
1716
# This test should be used to verify correct behaviour of deprecated
1817
# RPC methods with and without the -deprecatedrpc flags. For example:
1918
#
@@ -24,19 +23,40 @@ def run_test(self):
2423
# self.log.info("Test generate RPC")
2524
# assert_raises_rpc_error(-32, 'The wallet generate rpc method is deprecated', self.nodes[0].rpc.generate, 1)
2625
# self.generate(self.nodes[1], 1)
27-
self.log.info("No tested deprecated RPC methods")
28-
26+
# self.log.info("No tested deprecated RPC methods")
27+
self.test_permissive_bool()
2928

3029
def test_permissive_bool(self):
30+
self.log.info("Test -deprecatedrpc=permissive_bool")
3131
self.generate(self.nodes[0], 1)
32+
33+
self.log.info("Node 0 (strict): JSON boolean accepted, legacy types rejected")
3234
assert_equal([], self.nodes[0].protx("list", "valid", True))
35+
assert_equal([], self.nodes[0].protx("list", "valid", False))
3336
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)
3437
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")
3544

45+
self.log.info("Node 1 (permissive): JSON boolean and legacy types accepted")
3646
assert_equal([], self.nodes[1].protx("list", "valid", True))
3747
assert_equal([], self.nodes[1].protx("list", "valid", 1))
3848
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"))
3956

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")
4060

4161
if __name__ == '__main__':
4262
DeprecatedRpcTest().main()

0 commit comments

Comments
 (0)