Skip to content

Commit 30500f7

Browse files
committed
refactor(test): deduplicate common input validation in MasternodeInfo
1 parent 885e223 commit 30500f7

File tree

1 file changed

+13
-30
lines changed

1 file changed

+13
-30
lines changed

test/functional/test_framework/test_framework.py

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1220,16 +1220,11 @@ def get_node(self, test: BitcoinTestFramework) -> TestNode:
12201220
raise AssertionError(f"Node at pos {self.nodeIdx} not present, did you start the node?")
12211221
return test.nodes[self.nodeIdx]
12221222

1223-
def register(self, node: TestNode, submit: bool, collateral_txid: Optional[str] = None, collateral_vout: Optional[int] = None,
1224-
addrs_core_p2p: Union[str, List[str], None] = None, ownerAddr: Optional[str] = None, pubKeyOperator: Optional[str] = None,
1225-
votingAddr: Optional[str] = None, operator_reward: Optional[int] = None, rewards_address: Optional[str] = None,
1226-
fundsAddr: Optional[str] = None, platform_node_id: Optional[str] = None, addrs_platform_p2p: Union[int, str, List[str], None] = None,
1227-
addrs_platform_https: Union[int, str, List[str], None] = None, expected_assert_code: Optional[int] = None,
1228-
expected_assert_msg: Optional[str] = None) -> Optional[str]:
1223+
def validate_inputs(self, platform_node_id: Optional[str] = None, addrs_platform_p2p: Union[int, str, List[str], None] = None,
1224+
addrs_platform_https: Union[int, str, List[str], None] = None, expected_assert_code: Optional[int] = None,
1225+
expected_assert_msg: Optional[str] = None):
12291226
if (expected_assert_code and not expected_assert_msg) or (not expected_assert_code and expected_assert_msg):
12301227
raise AssertionError("Intending to use assert_raises_rpc_error() but didn't specify code and message")
1231-
1232-
# EvoNode-specific fields are ignored for regular masternodes
12331228
if self.evo:
12341229
if platform_node_id is None:
12351230
raise AssertionError("EvoNode but platform_node_id is missing, must be specified!")
@@ -1238,6 +1233,14 @@ def register(self, node: TestNode, submit: bool, collateral_txid: Optional[str]
12381233
if addrs_platform_https is None:
12391234
raise AssertionError("EvoNode but addrs_platform_https is missing, must be specified!")
12401235

1236+
def register(self, node: TestNode, submit: bool, collateral_txid: Optional[str] = None, collateral_vout: Optional[int] = None,
1237+
addrs_core_p2p: Union[str, List[str], None] = None, ownerAddr: Optional[str] = None, pubKeyOperator: Optional[str] = None,
1238+
votingAddr: Optional[str] = None, operator_reward: Optional[int] = None, rewards_address: Optional[str] = None,
1239+
fundsAddr: Optional[str] = None, platform_node_id: Optional[str] = None, addrs_platform_p2p: Union[int, str, List[str], None] = None,
1240+
addrs_platform_https: Union[int, str, List[str], None] = None, expected_assert_code: Optional[int] = None,
1241+
expected_assert_msg: Optional[str] = None) -> Optional[str]:
1242+
self.validate_inputs(platform_node_id, addrs_platform_p2p, addrs_platform_https, expected_assert_code, expected_assert_msg)
1243+
12411244
# Common arguments shared between regular masternodes and EvoNodes
12421245
args = [
12431246
collateral_txid or self.collateral_txid,
@@ -1283,17 +1286,7 @@ def register_fund(self, node: TestNode, submit: bool, collateral_address: Option
12831286
platform_node_id: Optional[str] = None, addrs_platform_p2p: Union[int, str, List[str], None] = None,
12841287
addrs_platform_https: Union[int, str, List[str], None] = None, expected_assert_code: Optional[int] = None,
12851288
expected_assert_msg: Optional[str] = None) -> Optional[str]:
1286-
if (expected_assert_code and not expected_assert_msg) or (not expected_assert_code and expected_assert_msg):
1287-
raise AssertionError("Intending to use assert_raises_rpc_error() but didn't specify code and message")
1288-
1289-
# EvoNode-specific fields are ignored for regular masternodes
1290-
if self.evo:
1291-
if platform_node_id is None:
1292-
raise AssertionError("EvoNode but platform_node_id is missing, must be specified!")
1293-
if addrs_platform_p2p is None:
1294-
raise AssertionError("EvoNode but addrs_platform_p2p is missing, must be specified!")
1295-
if addrs_platform_https is None:
1296-
raise AssertionError("EvoNode but addrs_platform_https is missing, must be specified!")
1289+
self.validate_inputs(platform_node_id, addrs_platform_p2p, addrs_platform_https, expected_assert_code, expected_assert_msg)
12971290

12981291
# Use assert_raises_rpc_error if we expect to error out
12991292
use_assert: bool = bool(expected_assert_code and expected_assert_msg)
@@ -1421,24 +1414,14 @@ def update_service(self, node: TestNode, submit: bool, addrs_core_p2p: Union[str
14211414
addrs_platform_p2p: Union[int, str, List[str], None] = None, addrs_platform_https: Union[int, str, List[str], None] = None,
14221415
address_operator: Optional[str] = None, fundsAddr: Optional[str] = None, expected_assert_code: Optional[int] = None,
14231416
expected_assert_msg: Optional[str] = None) -> Optional[str]:
1424-
if (expected_assert_code and not expected_assert_msg) or (not expected_assert_code and expected_assert_msg):
1425-
raise AssertionError("Intending to use assert_raises_rpc_error() but didn't specify code and message")
1417+
self.validate_inputs(platform_node_id, addrs_platform_p2p, addrs_platform_https, expected_assert_code, expected_assert_msg)
14261418

14271419
# Update commands should be run from the appropriate MasternodeInfo instance, we do not allow overriding some values for this reason
14281420
if self.proTxHash is None:
14291421
raise AssertionError("proTxHash not set, did you call set_params()")
14301422
if self.keyOperator is None:
14311423
raise AssertionError("keyOperator not set, did you call generate_addresses()")
14321424

1433-
# EvoNode-specific fields are ignored for regular masternodes
1434-
if self.evo:
1435-
if platform_node_id is None:
1436-
raise AssertionError("EvoNode but platform_node_id is missing, must be specified!")
1437-
if addrs_platform_p2p is None:
1438-
raise AssertionError("EvoNode but addrs_platform_p2p is missing, must be specified!")
1439-
if addrs_platform_https is None:
1440-
raise AssertionError("EvoNode but addrs_platform_https is missing, must be specified!")
1441-
14421425
# Use assert_raises_rpc_error if we expect to error out
14431426
use_assert: bool = bool(expected_assert_code and expected_assert_msg)
14441427

0 commit comments

Comments
 (0)