Skip to content

Commit cb35f1d

Browse files
author
MarcoFalke
committed
Merge #15301: tests: When testing with --usecli, unify RPC arg to cli arg conversion and handle dicts and lists
2e02341 tests: unify RPC argument to cli argument conversion and handle dicts and lists (Andrew Chow) Pull request description: When running tests with --usecli, unify the conversion from argument objects to strings using a new function arg_to_cli(). This fixes boolean arguments when using named arguments. Also use json.dumps() to get the string values for arguments that are dicts and lists so that bitcoind's JSON parser does not become confused. Tree-SHA512: 472bef3cd78410a8552fd342b1852bcd7c57721cfa9176b26bacda6b0791cc0b3758561a529c4117a7428242f98bb7d5482b2a2dcd06bea0ef2b15ae26183405
2 parents 3b19d8e + 2e02341 commit cb35f1d

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

test/functional/test_framework/test_node.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,14 @@ def __call__(self, *args, **kwargs):
402402
def get_request(self, *args, **kwargs):
403403
return lambda: self(*args, **kwargs)
404404

405+
def arg_to_cli(arg):
406+
if isinstance(arg, bool):
407+
return str(arg).lower()
408+
elif isinstance(arg, dict) or isinstance(arg, list):
409+
return json.dumps(arg)
410+
else:
411+
return str(arg)
412+
405413
class TestNodeCLI():
406414
"""Interface to bitcoin-cli for an individual node"""
407415

@@ -433,8 +441,8 @@ def batch(self, requests):
433441

434442
def send_cli(self, command=None, *args, **kwargs):
435443
"""Run bitcoin-cli command. Deserializes returned string as python object."""
436-
pos_args = [str(arg).lower() if type(arg) is bool else str(arg) for arg in args]
437-
named_args = [str(key) + "=" + str(value) for (key, value) in kwargs.items()]
444+
pos_args = [arg_to_cli(arg) for arg in args]
445+
named_args = [str(key) + "=" + arg_to_cli(value) for (key, value) in kwargs.items()]
438446
assert not (pos_args and named_args), "Cannot use positional arguments and named arguments in the same bitcoin-cli call"
439447
p_args = [self.binary, "-datadir=" + self.datadir] + self.options
440448
if named_args:

0 commit comments

Comments
 (0)