Skip to content

Commit f420b63

Browse files
committed
test: skip subtests that check for wrong types with cli
The error messages returned for wrong type differ betwen using rpc or cli - skip these subtests where they happen.
1 parent 6530d00 commit f420b63

File tree

7 files changed

+37
-27
lines changed

7 files changed

+37
-27
lines changed

test/functional/rpc_estimatefee.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ def run_test(self):
2121
assert_raises_rpc_error(-1, "estimatesmartfee", self.nodes[0].estimatesmartfee)
2222
assert_raises_rpc_error(-1, "estimaterawfee", self.nodes[0].estimaterawfee)
2323

24-
# wrong type for conf_target
25-
assert_raises_rpc_error(-3, "JSON value of type string is not of expected type number", self.nodes[0].estimatesmartfee, 'foo')
26-
assert_raises_rpc_error(-3, "JSON value of type string is not of expected type number", self.nodes[0].estimaterawfee, 'foo')
24+
# cli handles wrong types differently
25+
if not self.options.usecli:
26+
# wrong type for conf_target
27+
assert_raises_rpc_error(-3, "JSON value of type string is not of expected type number", self.nodes[0].estimatesmartfee, 'foo')
28+
assert_raises_rpc_error(-3, "JSON value of type string is not of expected type number", self.nodes[0].estimaterawfee, 'foo')
29+
# wrong type for estimatesmartfee(estimate_mode)
30+
assert_raises_rpc_error(-3, "JSON value of type number is not of expected type string", self.nodes[0].estimatesmartfee, 1, 1)
31+
# wrong type for estimaterawfee(threshold)
32+
assert_raises_rpc_error(-3, "JSON value of type string is not of expected type number", self.nodes[0].estimaterawfee, 1, 'foo')
2733

28-
# wrong type for estimatesmartfee(estimate_mode)
29-
assert_raises_rpc_error(-3, "JSON value of type number is not of expected type string", self.nodes[0].estimatesmartfee, 1, 1)
3034
assert_raises_rpc_error(-8, 'Invalid estimate_mode parameter, must be one of: "unset", "economical", "conservative"', self.nodes[0].estimatesmartfee, 1, 'foo')
31-
32-
# wrong type for estimaterawfee(threshold)
33-
assert_raises_rpc_error(-3, "JSON value of type string is not of expected type number", self.nodes[0].estimaterawfee, 1, 'foo')
34-
3535
# extra params
3636
assert_raises_rpc_error(-1, "estimatesmartfee", self.nodes[0].estimatesmartfee, 1, 'ECONOMICAL', 1)
3737
assert_raises_rpc_error(-1, "estimaterawfee", self.nodes[0].estimaterawfee, 1, 1, 1)

test/functional/rpc_generate.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,12 @@ def test_generate(self):
124124
"cli option. Refer to -help for more information.\n"
125125
)
126126

127-
self.log.info("Test rpc generate raises with message to use cli option")
128-
assert_raises_rpc_error(-32601, message, self.nodes[0]._rpc.generate)
127+
if not self.options.usecli:
128+
self.log.info("Test rpc generate raises with message to use cli option")
129+
assert_raises_rpc_error(-32601, message, self.nodes[0]._rpc.generate)
129130

130-
self.log.info("Test rpc generate help prints message to use cli option")
131-
assert_equal(message, self.nodes[0].help("generate"))
131+
self.log.info("Test rpc generate help prints message to use cli option")
132+
assert_equal(message, self.nodes[0].help("generate"))
132133

133134
self.log.info("Test rpc generate is a hidden command not discoverable in general help")
134135
assert message not in self.nodes[0].help()

test/functional/rpc_getblockfrompeer.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,11 @@ def run_test(self):
6767

6868
self.log.info("Arguments must be valid")
6969
assert_raises_rpc_error(-8, "hash must be of length 64 (not 4, for '1234')", self.nodes[0].getblockfrompeer, "1234", peer_0_peer_1_id)
70-
assert_raises_rpc_error(-3, "JSON value of type number is not of expected type string", self.nodes[0].getblockfrompeer, 1234, peer_0_peer_1_id)
71-
assert_raises_rpc_error(-3, "JSON value of type string is not of expected type number", self.nodes[0].getblockfrompeer, short_tip, "0")
70+
71+
# cli handles wrong types differently
72+
if not self.options.usecli:
73+
assert_raises_rpc_error(-3, "JSON value of type number is not of expected type string", self.nodes[0].getblockfrompeer, 1234, peer_0_peer_1_id)
74+
assert_raises_rpc_error(-3, "JSON value of type string is not of expected type number", self.nodes[0].getblockfrompeer, short_tip, "0")
7275

7376
self.log.info("We must already have the header")
7477
assert_raises_rpc_error(-1, "Block header missing", self.nodes[0].getblockfrompeer, "00" * 32, 0)

test/functional/rpc_getdescriptorinfo.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ def test_desc(self, desc, isrange, issolvable, hasprivatekeys, expanded_descs=No
3535

3636
def run_test(self):
3737
assert_raises_rpc_error(-1, 'getdescriptorinfo', self.nodes[0].getdescriptorinfo)
38-
assert_raises_rpc_error(-3, 'JSON value of type number is not of expected type string', self.nodes[0].getdescriptorinfo, 1)
38+
# cli handles wrong types differently
39+
if not self.options.usecli:
40+
assert_raises_rpc_error(-3, 'JSON value of type number is not of expected type string', self.nodes[0].getdescriptorinfo, 1)
3941
assert_raises_rpc_error(-5, "'' is not a valid descriptor function", self.nodes[0].getdescriptorinfo, "")
4042
assert_raises_rpc_error(-5, "pk(): Key ' 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798' is invalid due to whitespace", self.nodes[0].getdescriptorinfo, "pk( 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798)")
4143
assert_raises_rpc_error(-5, "pk(): Key '0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 ' is invalid due to whitespace", self.nodes[0].getdescriptorinfo, "pk(0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 )")

test/functional/rpc_help.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ def process_mapping(fname):
4545
class HelpRpcTest(BitcoinTestFramework):
4646
def set_test_params(self):
4747
self.num_nodes = 1
48-
self.supports_cli = False
4948
self.uses_wallet = None
5049

5150
def run_test(self):
@@ -93,7 +92,8 @@ def test_categories(self):
9392
assert_raises_rpc_error(-1, 'help', node.help, 'foo', 'bar')
9493

9594
# invalid argument
96-
assert_raises_rpc_error(-3, "JSON value of type number is not of expected type string", node.help, 0)
95+
if not self.options.usecli:
96+
assert_raises_rpc_error(-3, "JSON value of type number is not of expected type string", node.help, 0)
9797

9898
# help of unknown command
9999
assert_equal(node.help('foo'), 'help: unknown command: foo')

test/functional/rpc_invalid_address_message.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,12 @@ def test_validateaddress(self):
9797

9898
node = self.nodes[0]
9999

100-
# Missing arg returns the help text
101-
assert_raises_rpc_error(-1, "Return information about the given bitcoin address.", node.validateaddress)
102-
# Explicit None is not allowed for required parameters
103-
assert_raises_rpc_error(-3, "JSON value of type null is not of expected type string", node.validateaddress, None)
100+
101+
if not self.options.usecli:
102+
# Missing arg returns the help text
103+
assert_raises_rpc_error(-1, "Return information about the given bitcoin address.", node.validateaddress)
104+
# Explicit None is not allowed for required parameters
105+
assert_raises_rpc_error(-3, "JSON value of type null is not of expected type string", node.validateaddress, None)
104106

105107
def test_getaddressinfo(self):
106108
node = self.nodes[0]

test/functional/wallet_bumpfee.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,9 @@ def test_invalid_parameters(self, rbf_node, peer_node, dest_address):
139139
assert_raises_rpc_error(-8, msg, rbf_node.bumpfee, rbfid, fee_rate=zero_value)
140140
msg = "Invalid amount"
141141
# Test fee_rate values that don't pass fixed-point parsing checks.
142-
for invalid_value in ["", 0.000000001, 1e-09, 1.111111111, 1111111111111111, "31.999999999999999999999"]:
143-
assert_raises_rpc_error(-3, msg, rbf_node.bumpfee, rbfid, fee_rate=invalid_value)
142+
if not self.options.usecli:
143+
for invalid_value in ["", 0.000000001, 1e-09, 1.111111111, 1111111111111111, "31.999999999999999999999"]:
144+
assert_raises_rpc_error(-3, msg, rbf_node.bumpfee, rbfid, fee_rate=invalid_value)
144145
# Test fee_rate values that cannot be represented in sat/vB.
145146
for invalid_value in [0.0001, 0.00000001, 0.00099999, 31.99999999]:
146147
assert_raises_rpc_error(-3, msg, rbf_node.bumpfee, rbfid, fee_rate=invalid_value)
@@ -164,9 +165,10 @@ def test_invalid_parameters(self, rbf_node, peer_node, dest_address):
164165
rbf_node.bumpfee, rbfid, {"confTarget": 123, "conf_target": 456})
165166

166167
self.log.info("Test invalid estimate_mode settings")
167-
for k, v in {"number": 42, "object": {"foo": "bar"}}.items():
168-
assert_raises_rpc_error(-3, f"JSON value of type {k} for field estimate_mode is not of expected type string",
169-
rbf_node.bumpfee, rbfid, estimate_mode=v)
168+
if not self.options.usecli:
169+
for k, v in {"number": 42, "object": {"foo": "bar"}}.items():
170+
assert_raises_rpc_error(-3, f"JSON value of type {k} for field estimate_mode is not of expected type string",
171+
rbf_node.bumpfee, rbfid, estimate_mode=v)
170172
for mode in ["foo", Decimal("3.1415"), "sat/B", "BTC/kB"]:
171173
assert_raises_rpc_error(-8, 'Invalid estimate_mode parameter, must be one of: "unset", "economical", "conservative"',
172174
rbf_node.bumpfee, rbfid, estimate_mode=mode)

0 commit comments

Comments
 (0)