Browse Source

test_walletutils.py: enhance tests coverage

add-joinmarket
zebra-lucky 1 year ago
parent
commit
67640b351f
  1. 3
      electrum/plugins/joinmarket/jmclient/wallet_utils.py
  2. 1
      electrum/plugins/joinmarket/notes.txt
  3. 145
      electrum/plugins/joinmarket/tests/jmclient/test_walletutils.py

3
electrum/plugins/joinmarket/jmclient/wallet_utils.py

@ -415,7 +415,8 @@ def wallet_display(jmman, showprivkey, displayall=False,
balance, status = get_addr_status( balance, status = get_addr_status(
path, utxos[m], utxos_enabled[m], is_new, address_type) path, utxos[m], utxos_enabled[m], is_new, address_type)
if showprivkey: if showprivkey:
privkey = jmman.get_wif_path(path) # privkey = jmman.get_wif_path(path) FIXME no get_wif_path
privkey = '' # FIXME
else: else:
privkey = '' privkey = ''
if (displayall or balance > 0 or if (displayall or balance > 0 or

1
electrum/plugins/joinmarket/notes.txt

@ -1,6 +1,7 @@
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
plugin: plugin:
- покращення покриття тестами - покращення покриття тестами
- jm_base_code.py: add get_wif_path (need password if wallet/ks encrypted)
- потрібно якось документувати - потрібно якось документувати
- qml gui - qml gui
- jm_qt_obwatch: advanced sorting by columns, filter by text - jm_qt_obwatch: advanced sorting by columns, filter by text

145
electrum/plugins/joinmarket/tests/jmclient/test_walletutils.py

@ -1,71 +1,84 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from electrum.plugins.joinmarket.jmclient.wallet_utils import ( from electrum.plugins.joinmarket.jmclient.wallet_utils import (
WalletView, WalletViewAccount, WalletViewBranch, WalletViewEntry) WalletView, WalletViewAccount, WalletViewBranch, WalletViewEntry,
wallet_display)
from electrum.plugins.joinmarket.tests import JMTestCase
def test_walletview():
rootpath = "m/0" class WalletUtilsTestCase(JMTestCase):
walletbranch = 0
accounts = range(3) async def test_walletview(self):
acctlist = [] rootpath = "m/0"
for a in accounts: walletbranch = 0
branches = [] accounts = range(3)
for address_type in range(2): acctlist = []
entries = [] for a in accounts:
for i in range(4): branches = []
entries.append( for address_type in range(2):
WalletViewEntry( entries = []
rootpath, a, address_type, i, for i in range(4):
"DUMMYADDRESS" + str(i+a), [i*10000000, i*10000000])) entries.append(
branches.append( WalletViewEntry(
WalletViewBranch( rootpath, a, address_type, i,
rootpath, a, address_type, branchentries=entries, "DUMMYADDRESS" + str(i+a),
xpub="xpubDUMMYXPUB" + str(a + address_type))) [i*10000000, i*10000000]))
acctlist.append(WalletViewAccount(rootpath, a, branches=branches)) branches.append(
wallet = WalletView(rootpath + "/" + str(walletbranch), accounts=acctlist) WalletViewBranch(
assert wallet.serialize() == ( rootpath, a, address_type, branchentries=entries,
'JM wallet\n' xpub="xpubDUMMYXPUB" + str(a + address_type)))
'mixdepth\t0\n' acctlist.append(WalletViewAccount(rootpath, a, branches=branches))
'external addresses\tm/0\txpubDUMMYXPUB0\n' wallet = WalletView(rootpath + "/" + str(walletbranch),
'm/0 \tDUMMYADDRESS0\t0.00000000\tnew\t\t\n' accounts=acctlist)
'm/0 \tDUMMYADDRESS1\t0.10000000\tnew\t\t\n' assert wallet.serialize() == (
'm/0 \tDUMMYADDRESS2\t0.20000000\tnew\t\t\n' 'JM wallet\n'
'm/0 \tDUMMYADDRESS3\t0.30000000\tnew\t\t\n' 'mixdepth\t0\n'
'Balance:\t0.60000000\n' 'external addresses\tm/0\txpubDUMMYXPUB0\n'
'internal addresses\tm/0\txpubDUMMYXPUB1\n' 'm/0 \tDUMMYADDRESS0\t0.00000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS0\t0.00000000\tnew\t\t\n' 'm/0 \tDUMMYADDRESS1\t0.10000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS1\t0.10000000\tnew\t\t\n' 'm/0 \tDUMMYADDRESS2\t0.20000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS2\t0.20000000\tnew\t\t\n' 'm/0 \tDUMMYADDRESS3\t0.30000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS3\t0.30000000\tnew\t\t\n' 'Balance:\t0.60000000\n'
'Balance:\t0.60000000\n' 'internal addresses\tm/0\txpubDUMMYXPUB1\n'
'Balance for mixdepth 0:\t1.20000000\n' 'm/0 \tDUMMYADDRESS0\t0.00000000\tnew\t\t\n'
'mixdepth\t1\n' 'm/0 \tDUMMYADDRESS1\t0.10000000\tnew\t\t\n'
'external addresses\tm/0\txpubDUMMYXPUB1\n' 'm/0 \tDUMMYADDRESS2\t0.20000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS1\t0.00000000\tnew\t\t\n' 'm/0 \tDUMMYADDRESS3\t0.30000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS2\t0.10000000\tnew\t\t\n' 'Balance:\t0.60000000\n'
'm/0 \tDUMMYADDRESS3\t0.20000000\tnew\t\t\n' 'Balance for mixdepth 0:\t1.20000000\n'
'm/0 \tDUMMYADDRESS4\t0.30000000\tnew\t\t\n' 'mixdepth\t1\n'
'Balance:\t0.60000000\n' 'external addresses\tm/0\txpubDUMMYXPUB1\n'
'internal addresses\tm/0\txpubDUMMYXPUB2\n' 'm/0 \tDUMMYADDRESS1\t0.00000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS1\t0.00000000\tnew\t\t\n' 'm/0 \tDUMMYADDRESS2\t0.10000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS2\t0.10000000\tnew\t\t\n' 'm/0 \tDUMMYADDRESS3\t0.20000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS3\t0.20000000\tnew\t\t\n' 'm/0 \tDUMMYADDRESS4\t0.30000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS4\t0.30000000\tnew\t\t\n' 'Balance:\t0.60000000\n'
'Balance:\t0.60000000\n' 'internal addresses\tm/0\txpubDUMMYXPUB2\n'
'Balance for mixdepth 1:\t1.20000000\n' 'm/0 \tDUMMYADDRESS1\t0.00000000\tnew\t\t\n'
'mixdepth\t2\n' 'm/0 \tDUMMYADDRESS2\t0.10000000\tnew\t\t\n'
'external addresses\tm/0\txpubDUMMYXPUB2\n' 'm/0 \tDUMMYADDRESS3\t0.20000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS2\t0.00000000\tnew\t\t\n' 'm/0 \tDUMMYADDRESS4\t0.30000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS3\t0.10000000\tnew\t\t\n' 'Balance:\t0.60000000\n'
'm/0 \tDUMMYADDRESS4\t0.20000000\tnew\t\t\n' 'Balance for mixdepth 1:\t1.20000000\n'
'm/0 \tDUMMYADDRESS5\t0.30000000\tnew\t\t\n' 'mixdepth\t2\n'
'Balance:\t0.60000000\n' 'external addresses\tm/0\txpubDUMMYXPUB2\n'
'internal addresses\tm/0\txpubDUMMYXPUB3\n' 'm/0 \tDUMMYADDRESS2\t0.00000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS2\t0.00000000\tnew\t\t\n' 'm/0 \tDUMMYADDRESS3\t0.10000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS3\t0.10000000\tnew\t\t\n' 'm/0 \tDUMMYADDRESS4\t0.20000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS4\t0.20000000\tnew\t\t\n' 'm/0 \tDUMMYADDRESS5\t0.30000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS5\t0.30000000\tnew\t\t\n' 'Balance:\t0.60000000\n'
'Balance:\t0.60000000\n' 'internal addresses\tm/0\txpubDUMMYXPUB3\n'
'Balance for mixdepth 2:\t1.20000000\n' 'm/0 \tDUMMYADDRESS2\t0.00000000\tnew\t\t\n'
'Total balance:\t3.60000000') 'm/0 \tDUMMYADDRESS3\t0.10000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS4\t0.20000000\tnew\t\t\n'
'm/0 \tDUMMYADDRESS5\t0.30000000\tnew\t\t\n'
'Balance:\t0.60000000\n'
'Balance for mixdepth 2:\t1.20000000\n'
'Total balance:\t3.60000000')
async def test_wallet_display(self):
jmman = self.jmman
wallet_display(
jmman, showprivkey=True, displayall=True, serialized=True,
summarized=True, mixdepth=None, jsonified=False)

Loading…
Cancel
Save