Browse Source

Add fidelity bond protocol tests

master
chris-belcher 5 years ago
parent
commit
6cf41627e2
No known key found for this signature in database
GPG Key ID: EF734EA677F31129
  1. 1
      jmclient/test/test_client_protocol.py
  2. 7
      jmclient/test/test_support.py
  3. 19
      jmdaemon/test/test_orderbookwatch.py

1
jmclient/test/test_client_protocol.py

@ -90,6 +90,7 @@ class DummyMaker(Maker):
self.aborted = False
self.wallet_service = WalletService(DummyWallet())
self.offerlist = self.create_my_orders()
self.fidelity_bond = None
def try_to_create_my_orders(self):
pass

7
jmclient/test/test_support.py

@ -6,7 +6,7 @@ from jmclient import (select, select_gradual, select_greedy, select_greediest,
choose_orders, choose_sweep_orders, weighted_order_choose)
from jmclient.support import (calc_cj_fee, rand_exp_array,
rand_norm_array, rand_weighted_choice,
cheapest_order_choose)
cheapest_order_choose, fidelity_bond_weighted_order_choose)
from taker_test_data import t_orderbook
import copy
@ -73,6 +73,11 @@ def test_choose_orders():
#test the hated 'cheapest'
orders_fees = choose_orders(orderbook, 100000000, 3, cheapest_order_choose)
assert len(orders_fees[0]) == 3
#test the fidelity bond one
for i, o in enumerate(orderbook):
o["fidelity_bond_value"] = i+1
orders_fees = choose_orders(orderbook, 100000000, 3, fidelity_bond_weighted_order_choose)
assert len(orders_fees[0]) == 3
#test sweep
result, cjamount, total_fee = choose_sweep_orders(orderbook, 50000000,
30000,

19
jmdaemon/test/test_orderbookwatch.py

@ -3,7 +3,7 @@
import pytest
from jmdaemon.orderbookwatch import OrderbookWatch
from jmdaemon import IRCMessageChannel
from jmdaemon import IRCMessageChannel, fidelity_bond_cmd_list
from jmclient import get_irc_mchannels, load_test_config
from jmdaemon.protocol import JM_VERSION, ORDER_KEYS
from jmbase.support import hextobin
@ -125,8 +125,6 @@ def test_disconnect_leave():
rows = ob.db.execute('SELECT * FROM orderbook;').fetchall()
orderbook = [dict([(k, o[k]) for k in ORDER_KEYS]) for o in rows]
assert len(orderbook) == 0
@pytest.mark.parametrize(
"valid, fidelity_bond_proof, maker_nick, taker_nick",
@ -271,15 +269,14 @@ def test_fidelity_bond_seen(valid, fidelity_bond_proof, maker_nick, taker_nick):
except ValueError:
parsed_proof = None
if valid:
assert len(rows) == 1
assert rows[0]["counterparty"] == maker_nick
assert rows[0]["vout"] == fidelity_bond_proof["vout"]
assert rows[0]["locktime"] == fidelity_bond_proof["locktime"]
assert rows[0]["certexpiry"] == fidelity_bond_proof["certificate-expiry"]
assert rows[0]["txid"] == hextobin(fidelity_bond_proof["txid"])
assert rows[0]["utxopubkey"] == hextobin(fidelity_bond_proof["utxo-pubkey"])
assert parsed_proof is not None
assert parsed_proof.utxo[0] == hextobin(fidelity_bond_proof["txid"])
assert parsed_proof.utxo[1] == fidelity_bond_proof["vout"]
assert parsed_proof.locktime == fidelity_bond_proof["locktime"]
assert parsed_proof.cert_expiry == fidelity_bond_proof["certificate-expiry"]
assert parsed_proof.utxo_pub == hextobin(fidelity_bond_proof["utxo-pubkey"])
else:
assert len(rows) == 0
assert parsed_proof is None
def test_duplicate_fidelity_bond_rejected():

Loading…
Cancel
Save