Browse Source

[qa] util: Move check_fee_amount out of wallet.py

0.13
MarcoFalke 9 years ago
parent
commit
fa26c420bf
  1. 9
      qa/rpc-tests/test_framework/util.py
  2. 7
      qa/rpc-tests/wallet.py

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

@ -477,6 +477,15 @@ def random_transaction(nodes, amount, min_fee, fee_increment, fee_variants):
return (txid, signresult["hex"], fee) return (txid, signresult["hex"], fee)
def assert_fee_amount(fee, tx_size, fee_per_kB):
"""Assert the fee was in range"""
target_fee = tx_size * fee_per_kB / 1000
if fee < target_fee:
raise AssertionError("Fee of %s BTC too low! (Should be %s BTC)"%(str(fee), str(target_fee)))
# allow the wallet's estimation to be at most 2 bytes off
if fee > (tx_size + 2) * fee_per_kB / 1000:
raise AssertionError("Fee of %s BTC too high! (Should be %s BTC)"%(str(fee), str(target_fee)))
def assert_equal(thing1, thing2): def assert_equal(thing1, thing2):
if thing1 != thing2: if thing1 != thing2:
raise AssertionError("%s != %s"%(str(thing1),str(thing2))) raise AssertionError("%s != %s"%(str(thing1),str(thing2)))

7
qa/rpc-tests/wallet.py

@ -11,12 +11,7 @@ class WalletTest (BitcoinTestFramework):
def check_fee_amount(self, curr_balance, balance_with_fee, fee_per_byte, tx_size): def check_fee_amount(self, curr_balance, balance_with_fee, fee_per_byte, tx_size):
"""Return curr_balance after asserting the fee was in range""" """Return curr_balance after asserting the fee was in range"""
fee = balance_with_fee - curr_balance fee = balance_with_fee - curr_balance
target_fee = fee_per_byte * tx_size assert_fee_amount(fee, tx_size, fee_per_byte * 1000)
if fee < target_fee:
raise AssertionError("Fee of %s BTC too low! (Should be %s BTC)"%(str(fee), str(target_fee)))
# allow the node's estimation to be at most 2 bytes off
if fee > fee_per_byte * (tx_size + 2):
raise AssertionError("Fee of %s BTC too high! (Should be %s BTC)"%(str(fee), str(target_fee)))
return curr_balance return curr_balance
def __init__(self): def __init__(self):

Loading…
Cancel
Save