Skip to content

Commit 2e82af4

Browse files
author
MarcoFalke
committed
Merge bitcoin/bitcoin#23207: test: Delete generate* calls from TestNode
fac62e6 test: Delete generate* calls from TestNode (MarcoFalke) fac7f61 test: Use generate* node RPC, not wallet RPC (MarcoFalke) faac1cd test: Use generate* from TestFramework, not TestNode (MarcoFalke) Pull request description: Deleting the methods is needed for #22567 to pave the way to make it easier to implicitly call the `sync_all` member function. Without the methods being deleted, nothing prevents developers from adding calls to it. As history showed, developers *will* add calls to it. For example, see commit eb02dbb from today or the first commit in this pull request. ACKs for top commit: stratospher: Tested ACK fac62e6. brunoerg: tACK fac62e6 promag: Code review ACK fac62e6. Tree-SHA512: 6d4dea8f95ead954acfef2e6a5d98897ce0c2d02265c5b137bb149d0265543bd51d7e8403e1945b9af75df5524ca50064fe1d2a432b25c8abc71bbb28ed6ed53
2 parents ef59692 + fac62e6 commit 2e82af4

File tree

7 files changed

+28
-16
lines changed

7 files changed

+28
-16
lines changed

test/functional/mempool_package_limits.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ def test_desc_count_limits_2(self):
244244
assert_equal(txres["package-error"], "package-mempool-limits")
245245

246246
# Clear mempool and check that the package passes now
247-
node.generate(1)
247+
self.generate(node, 1)
248248
assert all([res["allowed"] for res in node.testmempoolaccept(rawtxs=package_hex)])
249249

250250
def test_anc_count_limits(self):

test/functional/test_framework/test_framework.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -628,19 +628,19 @@ def join_network(self):
628628
self.sync_all()
629629

630630
def generate(self, generator, *args, **kwargs):
631-
blocks = generator.generate(*args, **kwargs)
631+
blocks = generator.generate(*args, invalid_call=False, **kwargs)
632632
return blocks
633633

634634
def generateblock(self, generator, *args, **kwargs):
635-
blocks = generator.generateblock(*args, **kwargs)
635+
blocks = generator.generateblock(*args, invalid_call=False, **kwargs)
636636
return blocks
637637

638638
def generatetoaddress(self, generator, *args, **kwargs):
639-
blocks = generator.generatetoaddress(*args, **kwargs)
639+
blocks = generator.generatetoaddress(*args, invalid_call=False, **kwargs)
640640
return blocks
641641

642642
def generatetodescriptor(self, generator, *args, **kwargs):
643-
blocks = generator.generatetodescriptor(*args, **kwargs)
643+
blocks = generator.generatetodescriptor(*args, invalid_call=False, **kwargs)
644644
return blocks
645645

646646
def sync_blocks(self, nodes=None, wait=1, timeout=60):

test/functional/test_framework/test_node.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,9 +297,21 @@ def wait_for_cookie_credentials(self):
297297
time.sleep(1.0 / poll_per_s)
298298
self._raise_assertion_error("Unable to retrieve cookie credentials after {}s".format(self.rpc_timeout))
299299

300-
def generate(self, nblocks, maxtries=1000000):
300+
def generate(self, nblocks, maxtries=1000000, **kwargs):
301301
self.log.debug("TestNode.generate() dispatches `generate` call to `generatetoaddress`")
302-
return self.generatetoaddress(nblocks=nblocks, address=self.get_deterministic_priv_key().address, maxtries=maxtries)
302+
return self.generatetoaddress(nblocks=nblocks, address=self.get_deterministic_priv_key().address, maxtries=maxtries, **kwargs)
303+
304+
def generateblock(self, *args, invalid_call, **kwargs):
305+
assert not invalid_call
306+
return self.__getattr__('generateblock')(*args, **kwargs)
307+
308+
def generatetoaddress(self, *args, invalid_call, **kwargs):
309+
assert not invalid_call
310+
return self.__getattr__('generatetoaddress')(*args, **kwargs)
311+
312+
def generatetodescriptor(self, *args, invalid_call, **kwargs):
313+
assert not invalid_call
314+
return self.__getattr__('generatetodescriptor')(*args, **kwargs)
303315

304316
def get_wallet_rpc(self, wallet_name):
305317
if self.use_cli:

test/functional/test_framework/wallet.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,9 @@ def sign_tx(self, tx, fixed_length=True):
111111
break
112112
tx.vin[0].scriptSig = CScript([der_sig + bytes(bytearray([SIGHASH_ALL]))])
113113

114-
def generate(self, num_blocks):
114+
def generate(self, num_blocks, **kwargs):
115115
"""Generate blocks with coinbase outputs to the internal address, and append the outputs to the internal list"""
116-
blocks = self._test_node.generatetodescriptor(num_blocks, self.get_descriptor())
116+
blocks = self._test_node.generatetodescriptor(num_blocks, self.get_descriptor(), **kwargs)
117117
for b in blocks:
118118
cb_tx = self._test_node.getblock(blockhash=b, verbosity=2)['tx'][0]
119119
self._utxos.append({'txid': cb_tx['txid'], 'vout': 0, 'value': cb_tx['vout'][0]['value']})

test/functional/wallet_descriptor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def run_test(self):
8484
send_wrpc = self.nodes[0].get_wallet_rpc("desc1")
8585

8686
# Generate some coins
87-
self.generatetoaddress(send_wrpc, COINBASE_MATURITY + 1, send_wrpc.getnewaddress())
87+
self.generatetoaddress(self.nodes[0], COINBASE_MATURITY + 1, send_wrpc.getnewaddress())
8888

8989
# Make transactions
9090
self.log.info("Test sending and receiving")

test/functional/wallet_importdescriptors.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def run_test(self):
7474
assert_equal(wpriv.getwalletinfo()['keypoolsize'], 0)
7575

7676
self.log.info('Mining coins')
77-
self.generatetoaddress(w0, COINBASE_MATURITY + 1, w0.getnewaddress())
77+
self.generatetoaddress(self.nodes[0], COINBASE_MATURITY + 1, w0.getnewaddress())
7878

7979
# RPC importdescriptors -----------------------------------------------
8080

@@ -405,7 +405,7 @@ def run_test(self):
405405
solvable=True,
406406
ismine=True)
407407
txid = w0.sendtoaddress(address, 49.99995540)
408-
self.generatetoaddress(w0, 6, w0.getnewaddress())
408+
self.generatetoaddress(self.nodes[0], 6, w0.getnewaddress())
409409
self.sync_blocks()
410410
tx = wpriv.createrawtransaction([{"txid": txid, "vout": 0}], {w0.getnewaddress(): 49.999})
411411
signed_tx = wpriv.signrawtransactionwithwallet(tx)

test/functional/wallet_transactiontime_rescan.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def run_test(self):
6363

6464
# generate some btc to create transactions and check blockcount
6565
initial_mine = COINBASE_MATURITY + 1
66-
minernode.generatetoaddress(initial_mine, m1)
66+
self.generatetoaddress(minernode, initial_mine, m1)
6767
assert_equal(minernode.getblockcount(), initial_mine + 200)
6868

6969
# synchronize nodes and time
@@ -76,7 +76,7 @@ def run_test(self):
7676
miner_wallet.sendtoaddress(wo1, 10)
7777

7878
# generate blocks and check blockcount
79-
minernode.generatetoaddress(COINBASE_MATURITY, m1)
79+
self.generatetoaddress(minernode, COINBASE_MATURITY, m1)
8080
assert_equal(minernode.getblockcount(), initial_mine + 300)
8181

8282
# synchronize nodes and time
@@ -89,7 +89,7 @@ def run_test(self):
8989
miner_wallet.sendtoaddress(wo2, 5)
9090

9191
# generate blocks and check blockcount
92-
minernode.generatetoaddress(COINBASE_MATURITY, m1)
92+
self.generatetoaddress(minernode, COINBASE_MATURITY, m1)
9393
assert_equal(minernode.getblockcount(), initial_mine + 400)
9494

9595
# synchronize nodes and time
@@ -102,7 +102,7 @@ def run_test(self):
102102
miner_wallet.sendtoaddress(wo3, 1)
103103

104104
# generate more blocks and check blockcount
105-
minernode.generatetoaddress(COINBASE_MATURITY, m1)
105+
self.generatetoaddress(minernode, COINBASE_MATURITY, m1)
106106
assert_equal(minernode.getblockcount(), initial_mine + 500)
107107

108108
self.log.info('Check user\'s final balance and transaction count')

0 commit comments

Comments
 (0)