aboutsummaryrefslogtreecommitdiff
path: root/test/functional
diff options
context:
space:
mode:
authorfurszy <matiasfurszyfer@protonmail.com>2023-04-15 21:47:29 -0300
committerfurszy <matiasfurszyfer@protonmail.com>2023-04-15 23:01:45 -0300
commite07dd5fff9eb64d7615ab515b351e296c00b1861 (patch)
tree91d4f3278e4dfd91afed0fc6b39e89c12768bfe2 /test/functional
parentb22c275582ccadc172d213d30cc261cc858f8b8e (diff)
downloadbitcoin-e07dd5fff9eb64d7615ab515b351e296c00b1861.tar.xz
test: fix bumpfee 'spend_one_input' occasional failure
Most of the subtests in wallet_bumpfee.py expect to find spendable UTXOs of 0.001 btc in the rbf wallet (they use the 'spend_one_input()' method that tries to spend one of them and if it doesn't find any, it throws an exception). The sporadic failure comes from the recently added 'test_feerate_checks_replaced_outputs' subtest that can spend all them. Leaving the next subtests with no 0.001 UTXOs to spend. To solve it, this PR moves the recently added case into a "context independent subtests" section. Which is placed at the end to not affect other cases.
Diffstat (limited to 'test/functional')
-rwxr-xr-xtest/functional/wallet_bumpfee.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/test/functional/wallet_bumpfee.py b/test/functional/wallet_bumpfee.py
index 4f7af328c1..2260af1d57 100755
--- a/test/functional/wallet_bumpfee.py
+++ b/test/functional/wallet_bumpfee.py
@@ -101,11 +101,13 @@ class BumpFeeTest(BitcoinTestFramework):
test_change_script_match(self, rbf_node, dest_address)
test_settxfee(self, rbf_node, dest_address)
test_maxtxfee_fails(self, rbf_node, dest_address)
- test_feerate_checks_replaced_outputs(self, rbf_node)
# These tests wipe out a number of utxos that are expected in other tests
test_small_output_with_feerate_succeeds(self, rbf_node, dest_address)
test_no_more_inputs_fails(self, rbf_node, dest_address)
+ # Context independent tests
+ test_feerate_checks_replaced_outputs(self, rbf_node, peer_node)
+
def test_invalid_parameters(self, rbf_node, peer_node, dest_address):
self.log.info('Test invalid parameters')
rbfid = spend_one_input(rbf_node, dest_address)
@@ -670,7 +672,11 @@ def test_no_more_inputs_fails(self, rbf_node, dest_address):
self.clear_mempool()
-def test_feerate_checks_replaced_outputs(self, rbf_node):
+def test_feerate_checks_replaced_outputs(self, rbf_node, peer_node):
+ # Make sure there is enough balance
+ peer_node.sendtoaddress(rbf_node.getnewaddress(), 60)
+ self.generate(peer_node, 1)
+
self.log.info("Test that feerate checks use replaced outputs")
outputs = []
for i in range(50):
@@ -693,6 +699,7 @@ def test_feerate_checks_replaced_outputs(self, rbf_node):
# Bumpfee and replace all outputs with a single one using the minimum feerate
rbf_node.bumpfee(tx_res["txid"], {"fee_rate": min_fee_rate, "outputs": new_outputs})
+ self.clear_mempool()
if __name__ == "__main__":