Browse Source

test_taker.py: enhance tests coverage

add-joinmarket
zebra-lucky 1 year ago
parent
commit
e07eb96657
  1. 2
      electrum/plugins/joinmarket/jmclient/taker_utils.py
  2. 77
      electrum/plugins/joinmarket/tests/jmclient/test_taker.py

2
electrum/plugins/joinmarket/jmclient/taker_utils.py

@ -343,7 +343,7 @@ def unconf_update(taker, tumble_log, addtolog=False):
hramt = taker.cjamount hramt = taker.cjamount
tumble_log.info(human_readable_schedule_entry( tumble_log.info(human_readable_schedule_entry(
taker.schedule[taker.schedule_index], hramt, hrdestn)) taker.schedule[taker.schedule_index], hramt, hrdestn))
tumble_log.info("Txid was: " + taker.txid) tumble_log.info(f"Txid was: {taker.txid}")
def tumbler_taker_finished_update(taker, tumble_log, options, def tumbler_taker_finished_update(taker, tumble_log, options,

77
electrum/plugins/joinmarket/tests/jmclient/test_taker.py

@ -18,9 +18,12 @@ from electrum.plugins.joinmarket.jmbitcoin import privkey_to_pubkey
from electrum.plugins.joinmarket.jmbase import utxostr_to_utxo from electrum.plugins.joinmarket.jmbase import utxostr_to_utxo
from electrum.plugins.joinmarket import jmbitcoin as btc from electrum.plugins.joinmarket import jmbitcoin as btc
from electrum.plugins.joinmarket.jmclient import Taker, NO_ROUNDING from electrum.plugins.joinmarket.jmclient import Taker, NO_ROUNDING
from electrum.plugins.joinmarket.jmclient.taker_utils import (
get_total_tumble_amount, restart_wait, unconf_update,
tumbler_taker_finished_update, tumbler_filter_orders_callback)
from electrum.plugins.joinmarket.jm_util import add_txin_descriptor from electrum.plugins.joinmarket.jm_util import add_txin_descriptor
from electrum.plugins.joinmarket.tests import JMTestCase from electrum.plugins.joinmarket.tests import JMTestCase, tx1_txid
from .commontest import default_max_cj_fee, DummyJMWallet from .commontest import default_max_cj_fee, DummyJMWallet
from .taker_test_data import ( from .taker_test_data import (
@ -745,3 +748,75 @@ class TakerTestCase(JMTestCase, ParametrizedTestCase):
assert taker.auth_counterparty(sig, auth_pub, maker_pub) assert taker.auth_counterparty(sig, auth_pub, maker_pub)
assert not taker.auth_counterparty(sig, auth_pub_tweaked, maker_pub) assert not taker.auth_counterparty(sig, auth_pub_tweaked, maker_pub)
assert not taker.auth_counterparty(sig_tweaked, auth_pub, maker_pub) assert not taker.auth_counterparty(sig_tweaked, auth_pub, maker_pub)
class TakerUtilsTestCase(JMTestCase):
async def test_get_total_tumble_amount(self):
schedule = [[4, 0, 2, 'INTERNAL', 0.5, 16, 0],
[0, 0, 2, 'INTERNAL', 0.5, 16, 0],
[1, 0.48524737930877715, 2, 'INTERNAL', 0.5, 16, 0],
[1, 0, 2, 'INTERNAL', 0.5, 16, 0],
[2, 0.06803272390931159, 2, 'INTERNAL', 0.5, 16, 0],
[2, 0, 2, 'INTERNAL', 0.5, 16, 0]]
mixdepth_balance_dict = {
4: 1000000,
0: 2000000,
1: 3000000,
2: 2000000,
}
assert get_total_tumble_amount(
mixdepth_balance_dict, schedule) == 8000000
async def test_restart_wait(self):
restart_wait(self.jmman, tx1_txid)
async def test_unconf_update(self):
def filter_orders(orders_feesl, cjamount):
return True
jmman = self.jmman
taker = get_taker(jmman, filter_orders=filter_orders)
taker.schedule = [[0, 20000000, 3,
"mnsquzxrHXpFsZeL42qwbKdCP2y1esN3qw",
0, NO_ROUNDING]]
orderbook = copy.deepcopy(t_orderbook)
await taker.initialize(orderbook, [])
taker.orderbook = copy.deepcopy(t_chosen_orders)
unconf_update(taker, jmman.tumble_log, addtolog=True)
async def test_tumbler_taker_finished_update(self):
def filter_orders(orders_feesl, cjamount):
return True
jmman = self.jmman
taker = get_taker(jmman, filter_orders=filter_orders)
taker.schedule = [[0, 20000000, 3,
"mnsquzxrHXpFsZeL42qwbKdCP2y1esN3qw",
0, NO_ROUNDING]]
orderbook = copy.deepcopy(t_orderbook)
await taker.initialize(orderbook, [])
taker.orderbook = copy.deepcopy(t_chosen_orders)
tumbler_taker_finished_update(
taker, jmman.tumble_log, options=True, res=False, fromtx=False)
async def test_tumbler_filter_orders_callback(self):
def filter_orders(orders_feesl, cjamount):
return True
jmman = self.jmman
taker = get_taker(jmman, filter_orders=filter_orders)
taker.schedule = [[0, 20000000, 3,
"mnsquzxrHXpFsZeL42qwbKdCP2y1esN3qw",
0, NO_ROUNDING]]
orderbook = copy.deepcopy(t_orderbook)
await taker.initialize(orderbook, [])
taker.orderbook = copy.deepcopy(t_chosen_orders)
orders_fees = (None, 1000)
tumbler_filter_orders_callback(
self.jmman, orders_fees, 100000, taker)

Loading…
Cancel
Save