Browse Source

test: Make expected_utxos optional in get_coinbase_address()

pull/245/head
Jack Grigg 5 years ago
parent
commit
3cb20f26a1
No known key found for this signature in database GPG Key ID: 1B8D649257DB0829
  1. 2
      qa/rpc-tests/finalsaplingroot.py
  2. 2
      qa/rpc-tests/mempool_nu_activation.py
  3. 2
      qa/rpc-tests/mempool_tx_input_limit.py
  4. 2
      qa/rpc-tests/paymentdisclosure.py
  5. 9
      qa/rpc-tests/test_framework/util.py
  6. 2
      qa/rpc-tests/wallet_1941.py
  7. 2
      qa/rpc-tests/wallet_anchorfork.py
  8. 4
      qa/rpc-tests/wallet_listnotes.py
  9. 2
      qa/rpc-tests/wallet_nullifiers.py
  10. 2
      qa/rpc-tests/wallet_overwintertx.py
  11. 2
      qa/rpc-tests/wallet_persistence.py
  12. 2
      qa/rpc-tests/wallet_protectcoinbase.py
  13. 6
      qa/rpc-tests/wallet_sapling.py
  14. 2
      qa/rpc-tests/wallet_treestate.py

2
qa/rpc-tests/finalsaplingroot.py

@ -57,7 +57,7 @@ class FinalSaplingRootTest(BitcoinTestFramework):
assert_equal(blk["finalsaplingroot"], SAPLING_TREE_EMPTY_ROOT)
# Node 0 shields some funds
taddr0 = get_coinbase_address(self.nodes[0], 100)
taddr0 = get_coinbase_address(self.nodes[0])
saplingAddr0 = self.nodes[0].z_getnewaddress('sapling')
recipients = []
recipients.append({"address": saplingAddr0, "amount": Decimal('20')})

2
qa/rpc-tests/mempool_nu_activation.py

@ -44,7 +44,7 @@ class MempoolUpgradeActivationTest(BitcoinTestFramework):
self.sync_all()
# Shield some ZEC
node1_taddr = get_coinbase_address(self.nodes[1], 97)
node1_taddr = get_coinbase_address(self.nodes[1])
node0_zaddr = self.nodes[0].z_getnewaddress('sprout')
recipients = [{'address': node0_zaddr, 'amount': Decimal('10')}]
myopid = self.nodes[1].z_sendmany(node1_taddr, recipients, 1, Decimal('0'))

2
qa/rpc-tests/mempool_tx_input_limit.py

@ -51,7 +51,7 @@ class MempoolTxInputLimitTest(BitcoinTestFramework):
node0_zaddr = self.nodes[0].z_getnewaddress('sprout')
# Send three inputs from node 0 taddr to zaddr to get out of coinbase
node0_taddr = get_coinbase_address(self.nodes[0], 3)
node0_taddr = get_coinbase_address(self.nodes[0])
recipients = []
recipients.append({"address":node0_zaddr, "amount":Decimal('30.0')-Decimal('0.0001')}) # utxo amount less fee
myopid = self.nodes[0].z_sendmany(node0_taddr, recipients)

2
qa/rpc-tests/paymentdisclosure.py

@ -49,7 +49,7 @@ class PaymentDisclosureTest (BitcoinTestFramework):
assert_equal(self.nodes[1].getbalance(), 10)
assert_equal(self.nodes[2].getbalance(), 30)
mytaddr = get_coinbase_address(self.nodes[0], 4)
mytaddr = get_coinbase_address(self.nodes[0])
myzaddr = self.nodes[0].z_getnewaddress('sprout')
# Check that Node 2 has payment disclosure disabled.

9
qa/rpc-tests/test_framework/util.py

@ -421,10 +421,17 @@ def wait_and_assert_operationid_status(node, myopid, in_status='success', in_err
return txid # otherwise return the txid
# Find a coinbase address on the node, filtering by the number of UTXOs it has.
# If no filter is provided, returns the coinbase address on the node containing
# the greatest number of spendable UTXOs.
# The default cached chain has one address per coinbase output.
def get_coinbase_address(node, expected_utxos):
def get_coinbase_address(node, expected_utxos=None):
addrs = [utxo['address'] for utxo in node.listunspent() if utxo['generated']]
assert(len(set(addrs)) > 0)
if expected_utxos is None:
addrs = [(addrs.count(a), a) for a in set(addrs)]
return sorted(addrs, reverse=True)[0][1]
addrs = [a for a in set(addrs) if addrs.count(a) == expected_utxos]
assert(len(addrs) > 0)
return addrs[0]

2
qa/rpc-tests/wallet_1941.py

@ -49,7 +49,7 @@ class Wallet1941RegressionTest (BitcoinTestFramework):
self.nodes[0].setmocktime(starttime)
self.nodes[0].generate(101)
mytaddr = get_coinbase_address(self.nodes[0], 1)
mytaddr = get_coinbase_address(self.nodes[0])
myzaddr = self.nodes[0].z_getnewaddress('sprout')
# Send 10 coins to our zaddr.

2
qa/rpc-tests/wallet_anchorfork.py

@ -45,7 +45,7 @@ class WalletAnchorForkTest (BitcoinTestFramework):
# At this point in time, commitment tree is the empty root
# Node 0 creates a joinsplit transaction
mytaddr0 = get_coinbase_address(self.nodes[0], 4)
mytaddr0 = get_coinbase_address(self.nodes[0])
myzaddr0 = self.nodes[0].z_getnewaddress('sprout')
recipients = []
recipients.append({"address":myzaddr0, "amount": Decimal('10.0') - Decimal('0.0001')})

4
qa/rpc-tests/wallet_listnotes.py

@ -43,7 +43,7 @@ class WalletListNotes(BitcoinTestFramework):
# Shield coinbase funds (must be a multiple of 10, no change allowed pre-sapling)
receive_amount_10 = Decimal('10.0') - Decimal('0.0001')
recipients = [{"address":sproutzaddr, "amount":receive_amount_10}]
myopid = self.nodes[0].z_sendmany(get_coinbase_address(self.nodes[0], 1), recipients)
myopid = self.nodes[0].z_sendmany(get_coinbase_address(self.nodes[0]), recipients)
txid_1 = wait_and_assert_operationid_status(self.nodes[0], myopid)
self.sync_all()
@ -122,7 +122,7 @@ class WalletListNotes(BitcoinTestFramework):
# so send from coin base)
receive_amount_2 = Decimal('2.0') - Decimal('0.0001')
recipients = [{"address": saplingzaddr, "amount":receive_amount_2}]
myopid = self.nodes[0].z_sendmany(get_coinbase_address(self.nodes[0], 1), recipients)
myopid = self.nodes[0].z_sendmany(get_coinbase_address(self.nodes[0]), recipients)
txid_3 = wait_and_assert_operationid_status(self.nodes[0], myopid)
self.sync_all()
unspent_tx = self.nodes[0].z_listunspent(0)

2
qa/rpc-tests/wallet_nullifiers.py

@ -24,7 +24,7 @@ class WalletNullifiersTest (BitcoinTestFramework):
# send node 0 taddr to zaddr to get out of coinbase
# Tests using the default cached chain have one address per coinbase output
mytaddr = get_coinbase_address(self.nodes[0], 1)
mytaddr = get_coinbase_address(self.nodes[0])
recipients = []
recipients.append({"address":myzaddr0, "amount":Decimal('10.0')-Decimal('0.0001')}) # utxo amount less fee

2
qa/rpc-tests/wallet_overwintertx.py

@ -35,7 +35,7 @@ class WalletOverwinterTxTest (BitcoinTestFramework):
self.sync_all()
# Node 0 has reward from blocks 1 to 98 which are spendable.
taddr0 = get_coinbase_address(self.nodes[0], 98)
taddr0 = get_coinbase_address(self.nodes[0])
taddr1 = self.nodes[1].getnewaddress()
taddr2 = self.nodes[2].getnewaddress()
zaddr2 = self.nodes[2].z_getnewaddress('sprout')

2
qa/rpc-tests/wallet_persistence.py

@ -59,7 +59,7 @@ class WalletPersistenceTest (BitcoinTestFramework):
self.sync_all()
# Node 0 shields funds to Sapling address
taddr0 = get_coinbase_address(self.nodes[0], 101)
taddr0 = get_coinbase_address(self.nodes[0])
recipients = []
recipients.append({"address": sapling_addr, "amount": Decimal('20')})
myopid = self.nodes[0].z_sendmany(taddr0, recipients, 1, 0)

2
qa/rpc-tests/wallet_protectcoinbase.py

@ -76,7 +76,7 @@ class WalletProtectCoinbaseTest (BitcoinTestFramework):
assert_equal("Coinbase funds can only be sent to a zaddr" in errorString, True)
# Prepare to send taddr->zaddr
mytaddr = get_coinbase_address(self.nodes[0], 4)
mytaddr = get_coinbase_address(self.nodes[0])
myzaddr = self.nodes[0].z_getnewaddress('sprout')
# Node 3 will test that watch only address utxos are not selected

6
qa/rpc-tests/wallet_sapling.py

@ -35,7 +35,7 @@ class WalletSaplingTest(BitcoinTestFramework):
self.sync_all()
# Verify RPCs disallow Sapling value transfer if Sapling is not active
tmp_taddr = get_coinbase_address(self.nodes[3], 1)
tmp_taddr = get_coinbase_address(self.nodes[3])
tmp_zaddr = self.nodes[3].z_getnewaddress('sapling')
try:
recipients = []
@ -95,7 +95,7 @@ class WalletSaplingTest(BitcoinTestFramework):
# taddr -> Sapling
recipients = []
recipients.append({"address": saplingAddr0, "amount": Decimal('10')})
myopid = self.nodes[0].z_sendmany(get_coinbase_address(self.nodes[0], 1), recipients, 1, 0)
myopid = self.nodes[0].z_sendmany(get_coinbase_address(self.nodes[0]), recipients, 1, 0)
mytxid = wait_and_assert_operationid_status(self.nodes[0], myopid)
self.sync_all()
@ -105,7 +105,7 @@ class WalletSaplingTest(BitcoinTestFramework):
assert(Decimal(mempool[mytxid]['startingpriority']) == Decimal('1E+16'))
# Shield another coinbase UTXO
myopid = self.nodes[0].z_sendmany(get_coinbase_address(self.nodes[0], 1), recipients, 1, 0)
myopid = self.nodes[0].z_sendmany(get_coinbase_address(self.nodes[0]), recipients, 1, 0)
mytxid = wait_and_assert_operationid_status(self.nodes[0], myopid)
self.sync_all()

2
qa/rpc-tests/wallet_treestate.py

@ -36,7 +36,7 @@ class WalletTreeStateTest (BitcoinTestFramework):
self.nodes[1].generate(101)
self.sync_all()
mytaddr = get_coinbase_address(self.nodes[0], 100)
mytaddr = get_coinbase_address(self.nodes[0])
myzaddr = self.nodes[0].z_getnewaddress('sprout')
# Spend coinbase utxos to create three notes of 9.99990000 each

Loading…
Cancel
Save