diff --git a/test/functional/wallet_balance.py b/test/functional/wallet_balance.py --- a/test/functional/wallet_balance.py +++ b/test/functional/wallet_balance.py @@ -105,24 +105,36 @@ self.log.info( "Test getbalance and getunconfirmedbalance with unconfirmed inputs") - # getbalance without any arguments includes unconfirmed transactions, - # but not untrusted transactions - assert_equal(self.nodes[0].getbalance(), Decimal( - '9.99')) # change from node 0's send - assert_equal(self.nodes[1].getbalance(), Decimal( - '29.99')) # change from node 1's send - # Same with minconf=0 - assert_equal(self.nodes[0].getbalance(minconf=0), Decimal('9.99')) - assert_equal(self.nodes[1].getbalance(minconf=0), Decimal('29.99')) - # getbalance with a minconf incorrectly excludes coins that have been spent more recently than the minconf blocks ago - # TODO: fix getbalance tracking of coin spentness depth - assert_equal(self.nodes[0].getbalance(minconf=1), Decimal('0')) - assert_equal(self.nodes[1].getbalance(minconf=1), Decimal('0')) - # getunconfirmedbalance - # output of node 1's spend - assert_equal(self.nodes[0].getunconfirmedbalance(), Decimal('60')) - # Doesn't include output of node 0's send since it was spent - assert_equal(self.nodes[1].getunconfirmedbalance(), Decimal('0')) + def test_balances(*, fee_node_1=0): + # getbalance without any arguments includes unconfirmed transactions, but not untrusted transactions + # change from node 0's send + assert_equal(self.nodes[0].getbalance(), Decimal('9.99')) + # change from node 1's send + assert_equal( + self.nodes[1].getbalance(), + Decimal('30') - fee_node_1) + # Same with minconf=0 + assert_equal(self.nodes[0].getbalance(minconf=0), Decimal('9.99')) + assert_equal( + self.nodes[1].getbalance( + minconf=0), + Decimal('30') - + fee_node_1) + # getbalance with a minconf incorrectly excludes coins that have been spent more recently than the minconf blocks ago + # TODO: fix getbalance tracking of coin spentness depth + assert_equal(self.nodes[0].getbalance(minconf=1), Decimal('0')) + assert_equal(self.nodes[1].getbalance(minconf=1), Decimal('0')) + # getunconfirmedbalance + # output of node 1's spend + assert_equal(self.nodes[0].getunconfirmedbalance(), Decimal('60')) + assert_equal(self.nodes[0].getwalletinfo()[ + "unconfirmed_balance"], Decimal('60')) + # Doesn't include output of node 0's send since it was spent + assert_equal(self.nodes[1].getunconfirmedbalance(), Decimal('0')) + assert_equal(self.nodes[1].getwalletinfo()[ + "unconfirmed_balance"], Decimal('0')) + + test_balances(fee_node_1=Decimal('0.01')) # In the original Core version of this test, Node 1 would've bumped # the fee by 0.01 here to resend, but this is BCH, so it has 0.01 BCH @@ -131,6 +143,7 @@ self.log.info( "Test getbalance and getunconfirmedbalance with conflicted unconfirmed inputs") + test_balances(fee_node_1=Decimal('0.01')) # output of node 1's send assert_equal(self.nodes[0].getwalletinfo()[