mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-20 10:38:42 +01:00
Merge bitcoin/bitcoin#23207: test: Delete generate* calls from TestNode
fac62e6ff5
test: Delete generate* calls from TestNode (MarcoFalke)fac7f6102f
test: Use generate* node RPC, not wallet RPC (MarcoFalke)faac1cda6e
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 commiteb02dbba3c
from today or the first commit in this pull request. ACKs for top commit: stratospher: Tested ACKfac62e6
. brunoerg: tACKfac62e6ff5
promag: Code review ACKfac62e6ff5
. Tree-SHA512: 6d4dea8f95ead954acfef2e6a5d98897ce0c2d02265c5b137bb149d0265543bd51d7e8403e1945b9af75df5524ca50064fe1d2a432b25c8abc71bbb28ed6ed53
This commit is contained in:
commit
2e82af46e2
@ -244,7 +244,7 @@ class MempoolPackageLimitsTest(BitcoinTestFramework):
|
||||
assert_equal(txres["package-error"], "package-mempool-limits")
|
||||
|
||||
# Clear mempool and check that the package passes now
|
||||
node.generate(1)
|
||||
self.generate(node, 1)
|
||||
assert all([res["allowed"] for res in node.testmempoolaccept(rawtxs=package_hex)])
|
||||
|
||||
def test_anc_count_limits(self):
|
||||
|
@ -628,19 +628,19 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||
self.sync_all()
|
||||
|
||||
def generate(self, generator, *args, **kwargs):
|
||||
blocks = generator.generate(*args, **kwargs)
|
||||
blocks = generator.generate(*args, invalid_call=False, **kwargs)
|
||||
return blocks
|
||||
|
||||
def generateblock(self, generator, *args, **kwargs):
|
||||
blocks = generator.generateblock(*args, **kwargs)
|
||||
blocks = generator.generateblock(*args, invalid_call=False, **kwargs)
|
||||
return blocks
|
||||
|
||||
def generatetoaddress(self, generator, *args, **kwargs):
|
||||
blocks = generator.generatetoaddress(*args, **kwargs)
|
||||
blocks = generator.generatetoaddress(*args, invalid_call=False, **kwargs)
|
||||
return blocks
|
||||
|
||||
def generatetodescriptor(self, generator, *args, **kwargs):
|
||||
blocks = generator.generatetodescriptor(*args, **kwargs)
|
||||
blocks = generator.generatetodescriptor(*args, invalid_call=False, **kwargs)
|
||||
return blocks
|
||||
|
||||
def sync_blocks(self, nodes=None, wait=1, timeout=60):
|
||||
|
@ -297,9 +297,21 @@ class TestNode():
|
||||
time.sleep(1.0 / poll_per_s)
|
||||
self._raise_assertion_error("Unable to retrieve cookie credentials after {}s".format(self.rpc_timeout))
|
||||
|
||||
def generate(self, nblocks, maxtries=1000000):
|
||||
def generate(self, nblocks, maxtries=1000000, **kwargs):
|
||||
self.log.debug("TestNode.generate() dispatches `generate` call to `generatetoaddress`")
|
||||
return self.generatetoaddress(nblocks=nblocks, address=self.get_deterministic_priv_key().address, maxtries=maxtries)
|
||||
return self.generatetoaddress(nblocks=nblocks, address=self.get_deterministic_priv_key().address, maxtries=maxtries, **kwargs)
|
||||
|
||||
def generateblock(self, *args, invalid_call, **kwargs):
|
||||
assert not invalid_call
|
||||
return self.__getattr__('generateblock')(*args, **kwargs)
|
||||
|
||||
def generatetoaddress(self, *args, invalid_call, **kwargs):
|
||||
assert not invalid_call
|
||||
return self.__getattr__('generatetoaddress')(*args, **kwargs)
|
||||
|
||||
def generatetodescriptor(self, *args, invalid_call, **kwargs):
|
||||
assert not invalid_call
|
||||
return self.__getattr__('generatetodescriptor')(*args, **kwargs)
|
||||
|
||||
def get_wallet_rpc(self, wallet_name):
|
||||
if self.use_cli:
|
||||
|
@ -111,9 +111,9 @@ class MiniWallet:
|
||||
break
|
||||
tx.vin[0].scriptSig = CScript([der_sig + bytes(bytearray([SIGHASH_ALL]))])
|
||||
|
||||
def generate(self, num_blocks):
|
||||
def generate(self, num_blocks, **kwargs):
|
||||
"""Generate blocks with coinbase outputs to the internal address, and append the outputs to the internal list"""
|
||||
blocks = self._test_node.generatetodescriptor(num_blocks, self.get_descriptor())
|
||||
blocks = self._test_node.generatetodescriptor(num_blocks, self.get_descriptor(), **kwargs)
|
||||
for b in blocks:
|
||||
cb_tx = self._test_node.getblock(blockhash=b, verbosity=2)['tx'][0]
|
||||
self._utxos.append({'txid': cb_tx['txid'], 'vout': 0, 'value': cb_tx['vout'][0]['value']})
|
||||
|
@ -84,7 +84,7 @@ class WalletDescriptorTest(BitcoinTestFramework):
|
||||
send_wrpc = self.nodes[0].get_wallet_rpc("desc1")
|
||||
|
||||
# Generate some coins
|
||||
self.generatetoaddress(send_wrpc, COINBASE_MATURITY + 1, send_wrpc.getnewaddress())
|
||||
self.generatetoaddress(self.nodes[0], COINBASE_MATURITY + 1, send_wrpc.getnewaddress())
|
||||
|
||||
# Make transactions
|
||||
self.log.info("Test sending and receiving")
|
||||
|
@ -74,7 +74,7 @@ class ImportDescriptorsTest(BitcoinTestFramework):
|
||||
assert_equal(wpriv.getwalletinfo()['keypoolsize'], 0)
|
||||
|
||||
self.log.info('Mining coins')
|
||||
self.generatetoaddress(w0, COINBASE_MATURITY + 1, w0.getnewaddress())
|
||||
self.generatetoaddress(self.nodes[0], COINBASE_MATURITY + 1, w0.getnewaddress())
|
||||
|
||||
# RPC importdescriptors -----------------------------------------------
|
||||
|
||||
@ -405,7 +405,7 @@ class ImportDescriptorsTest(BitcoinTestFramework):
|
||||
solvable=True,
|
||||
ismine=True)
|
||||
txid = w0.sendtoaddress(address, 49.99995540)
|
||||
self.generatetoaddress(w0, 6, w0.getnewaddress())
|
||||
self.generatetoaddress(self.nodes[0], 6, w0.getnewaddress())
|
||||
self.sync_blocks()
|
||||
tx = wpriv.createrawtransaction([{"txid": txid, "vout": 0}], {w0.getnewaddress(): 49.999})
|
||||
signed_tx = wpriv.signrawtransactionwithwallet(tx)
|
||||
|
@ -63,7 +63,7 @@ class TransactionTimeRescanTest(BitcoinTestFramework):
|
||||
|
||||
# generate some btc to create transactions and check blockcount
|
||||
initial_mine = COINBASE_MATURITY + 1
|
||||
minernode.generatetoaddress(initial_mine, m1)
|
||||
self.generatetoaddress(minernode, initial_mine, m1)
|
||||
assert_equal(minernode.getblockcount(), initial_mine + 200)
|
||||
|
||||
# synchronize nodes and time
|
||||
@ -76,7 +76,7 @@ class TransactionTimeRescanTest(BitcoinTestFramework):
|
||||
miner_wallet.sendtoaddress(wo1, 10)
|
||||
|
||||
# generate blocks and check blockcount
|
||||
minernode.generatetoaddress(COINBASE_MATURITY, m1)
|
||||
self.generatetoaddress(minernode, COINBASE_MATURITY, m1)
|
||||
assert_equal(minernode.getblockcount(), initial_mine + 300)
|
||||
|
||||
# synchronize nodes and time
|
||||
@ -89,7 +89,7 @@ class TransactionTimeRescanTest(BitcoinTestFramework):
|
||||
miner_wallet.sendtoaddress(wo2, 5)
|
||||
|
||||
# generate blocks and check blockcount
|
||||
minernode.generatetoaddress(COINBASE_MATURITY, m1)
|
||||
self.generatetoaddress(minernode, COINBASE_MATURITY, m1)
|
||||
assert_equal(minernode.getblockcount(), initial_mine + 400)
|
||||
|
||||
# synchronize nodes and time
|
||||
@ -102,7 +102,7 @@ class TransactionTimeRescanTest(BitcoinTestFramework):
|
||||
miner_wallet.sendtoaddress(wo3, 1)
|
||||
|
||||
# generate more blocks and check blockcount
|
||||
minernode.generatetoaddress(COINBASE_MATURITY, m1)
|
||||
self.generatetoaddress(minernode, COINBASE_MATURITY, m1)
|
||||
assert_equal(minernode.getblockcount(), initial_mine + 500)
|
||||
|
||||
self.log.info('Check user\'s final balance and transaction count')
|
||||
|
Loading…
Reference in New Issue
Block a user