test: use echojson to allow rpc_named_arguments.py --usecli
What changed, and why it matters
This is a minor change to a single test file in Bitcoin Core. It swaps the test RPC from 'echo' to 'echojson' so the test can also run against the command-line bitcoin-cli tool. There is no change to production code, no wallet or network behavior change, and no security fix or vulnerability introduced.
No security action required; this is a test-only refactor improving CLI test coverage.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit modifies test/functional/rpc_named_arguments.py only. It removes ‘self.supports_cli = False’, renames all ‘echo’ calls to ‘echojson’, and adjusts one assertion for the CLI case where omitted trailing optional arguments are dropped rather than returned as null. ‘echojson’ is already registered server-side identically to ‘echo’; the only difference is client-side conversion-table registration, enabling named-argument support via bitcoin-cli. No consensus, P2P, wallet, or RPC server code is touched.
Changed components
test/functional/rpc_named_arguments.pyInspect captured patch +9 / −9
diff --git a/test/functional/rpc_named_arguments.py b/test/functional/rpc_named_arguments.py
index ce1bbda4..9f8248c8 100755
--- a/test/functional/rpc_named_arguments.py
+++ b/test/functional/rpc_named_arguments.py
@@ -10,10 +10,10 @@ from test_framework.util import (
assert_raises_rpc_error,
)
+
class NamedArgumentTest(BitcoinTestFramework):
def set_test_params(self):
self.num_nodes = 1
- self.supports_cli = False
def run_test(self):
node = self.nodes[0]
@@ -25,14 +25,14 @@ class NamedArgumentTest(BitcoinTestFramework):
h = node.getblockhash(height=0)
node.getblock(blockhash=h)
- assert_equal(node.echo(), [])
- assert_equal(node.echo(arg0=0,arg9=9), [0] + [None]*8 + [9])
- assert_equal(node.echo(arg1=1), [None, 1])
- assert_equal(node.echo(arg9=None), [None]*10)
- assert_equal(node.echo(arg0=0,arg3=3,arg9=9), [0] + [None]*2 + [3] + [None]*5 + [9])
- assert_equal(node.echo(0, 1, arg3=3, arg5=5), [0, 1, None, 3, None, 5])
- assert_raises_rpc_error(-8, "Parameter arg1 specified twice both as positional and named argument", node.echo, 0, 1, arg1=1)
- assert_raises_rpc_error(-8, "Parameter arg1 specified twice both as positional and named argument", node.echo, 0, None, 2, arg1=1)
+ assert_equal(node.echojson(), [])
+ assert_equal(node.echojson(arg0=0, arg9=9), [0] + [None] * 8 + [9])
+ assert_equal(node.echojson(arg1=1), [None, 1])
+ assert_equal(node.echojson(arg9=None), [] if self.options.usecli else [None] * 10)
+ assert_equal(node.echojson(arg0=0, arg3=3, arg9=9), [0] + [None] * 2 + [3] + [None] * 5 + [9])
+ assert_equal(node.echojson(0, 1, arg3=3, arg5=5), [0, 1, None, 3, None, 5])
+ assert_raises_rpc_error(-8, "Parameter arg1 specified twice both as positional and named argument", node.echojson, 0, 1, arg1=1)
+ assert_raises_rpc_error(-8, "Parameter arg1 specified twice both as positional and named argument", node.echojson, 0, None, 2, arg1=1)
if __name__ == '__main__':
NamedArgumentTest(__file__).main()
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.