From 67640b351f3ef757c49ebac6c00b0c1eeb581916 Mon Sep 17 00:00:00 2001 From: zebra-lucky Date: Fri, 1 Nov 2024 04:45:12 +0200 Subject: [PATCH] test_walletutils.py: enhance tests coverage --- .../joinmarket/jmclient/wallet_utils.py | 3 +- electrum/plugins/joinmarket/notes.txt | 1 + .../tests/jmclient/test_walletutils.py | 145 ++++++++++-------- 3 files changed, 82 insertions(+), 67 deletions(-) diff --git a/electrum/plugins/joinmarket/jmclient/wallet_utils.py b/electrum/plugins/joinmarket/jmclient/wallet_utils.py index 24b61bf59..bd7fb7d51 100644 --- a/electrum/plugins/joinmarket/jmclient/wallet_utils.py +++ b/electrum/plugins/joinmarket/jmclient/wallet_utils.py @@ -415,7 +415,8 @@ def wallet_display(jmman, showprivkey, displayall=False, balance, status = get_addr_status( path, utxos[m], utxos_enabled[m], is_new, address_type) if showprivkey: - privkey = jmman.get_wif_path(path) + # privkey = jmman.get_wif_path(path) FIXME no get_wif_path + privkey = '' # FIXME else: privkey = '' if (displayall or balance > 0 or diff --git a/electrum/plugins/joinmarket/notes.txt b/electrum/plugins/joinmarket/notes.txt index c57e2a714..aabe4e9c0 100644 --- a/electrum/plugins/joinmarket/notes.txt +++ b/electrum/plugins/joinmarket/notes.txt @@ -1,6 +1,7 @@ ------------------------------------------------------------------------------- plugin: - покращення покриття тестами + - jm_base_code.py: add get_wif_path (need password if wallet/ks encrypted) - потрібно якось документувати - qml gui - jm_qt_obwatch: advanced sorting by columns, filter by text diff --git a/electrum/plugins/joinmarket/tests/jmclient/test_walletutils.py b/electrum/plugins/joinmarket/tests/jmclient/test_walletutils.py index 9caa4a7d4..77d223142 100644 --- a/electrum/plugins/joinmarket/tests/jmclient/test_walletutils.py +++ b/electrum/plugins/joinmarket/tests/jmclient/test_walletutils.py @@ -1,71 +1,84 @@ # -*- coding: utf-8 -*- 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" - walletbranch = 0 - accounts = range(3) - acctlist = [] - for a in accounts: - branches = [] - for address_type in range(2): - entries = [] - for i in range(4): - entries.append( - WalletViewEntry( - rootpath, a, address_type, i, - "DUMMYADDRESS" + str(i+a), [i*10000000, i*10000000])) - branches.append( - WalletViewBranch( - rootpath, a, address_type, branchentries=entries, - xpub="xpubDUMMYXPUB" + str(a + address_type))) - acctlist.append(WalletViewAccount(rootpath, a, branches=branches)) - wallet = WalletView(rootpath + "/" + str(walletbranch), accounts=acctlist) - assert wallet.serialize() == ( - 'JM wallet\n' - 'mixdepth\t0\n' - 'external addresses\tm/0\txpubDUMMYXPUB0\n' - 'm/0 \tDUMMYADDRESS0\t0.00000000\tnew\t\t\n' - 'm/0 \tDUMMYADDRESS1\t0.10000000\tnew\t\t\n' - 'm/0 \tDUMMYADDRESS2\t0.20000000\tnew\t\t\n' - 'm/0 \tDUMMYADDRESS3\t0.30000000\tnew\t\t\n' - 'Balance:\t0.60000000\n' - 'internal addresses\tm/0\txpubDUMMYXPUB1\n' - 'm/0 \tDUMMYADDRESS0\t0.00000000\tnew\t\t\n' - 'm/0 \tDUMMYADDRESS1\t0.10000000\tnew\t\t\n' - 'm/0 \tDUMMYADDRESS2\t0.20000000\tnew\t\t\n' - 'm/0 \tDUMMYADDRESS3\t0.30000000\tnew\t\t\n' - 'Balance:\t0.60000000\n' - 'Balance for mixdepth 0:\t1.20000000\n' - 'mixdepth\t1\n' - 'external addresses\tm/0\txpubDUMMYXPUB1\n' - 'm/0 \tDUMMYADDRESS1\t0.00000000\tnew\t\t\n' - 'm/0 \tDUMMYADDRESS2\t0.10000000\tnew\t\t\n' - 'm/0 \tDUMMYADDRESS3\t0.20000000\tnew\t\t\n' - 'm/0 \tDUMMYADDRESS4\t0.30000000\tnew\t\t\n' - 'Balance:\t0.60000000\n' - 'internal addresses\tm/0\txpubDUMMYXPUB2\n' - 'm/0 \tDUMMYADDRESS1\t0.00000000\tnew\t\t\n' - 'm/0 \tDUMMYADDRESS2\t0.10000000\tnew\t\t\n' - 'm/0 \tDUMMYADDRESS3\t0.20000000\tnew\t\t\n' - 'm/0 \tDUMMYADDRESS4\t0.30000000\tnew\t\t\n' - 'Balance:\t0.60000000\n' - 'Balance for mixdepth 1:\t1.20000000\n' - 'mixdepth\t2\n' - 'external addresses\tm/0\txpubDUMMYXPUB2\n' - 'm/0 \tDUMMYADDRESS2\t0.00000000\tnew\t\t\n' - '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' - 'internal addresses\tm/0\txpubDUMMYXPUB3\n' - 'm/0 \tDUMMYADDRESS2\t0.00000000\tnew\t\t\n' - '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') + +class WalletUtilsTestCase(JMTestCase): + + async def test_walletview(self): + rootpath = "m/0" + walletbranch = 0 + accounts = range(3) + acctlist = [] + for a in accounts: + branches = [] + for address_type in range(2): + entries = [] + for i in range(4): + entries.append( + WalletViewEntry( + rootpath, a, address_type, i, + "DUMMYADDRESS" + str(i+a), + [i*10000000, i*10000000])) + branches.append( + WalletViewBranch( + rootpath, a, address_type, branchentries=entries, + xpub="xpubDUMMYXPUB" + str(a + address_type))) + acctlist.append(WalletViewAccount(rootpath, a, branches=branches)) + wallet = WalletView(rootpath + "/" + str(walletbranch), + accounts=acctlist) + assert wallet.serialize() == ( + 'JM wallet\n' + 'mixdepth\t0\n' + 'external addresses\tm/0\txpubDUMMYXPUB0\n' + 'm/0 \tDUMMYADDRESS0\t0.00000000\tnew\t\t\n' + 'm/0 \tDUMMYADDRESS1\t0.10000000\tnew\t\t\n' + 'm/0 \tDUMMYADDRESS2\t0.20000000\tnew\t\t\n' + 'm/0 \tDUMMYADDRESS3\t0.30000000\tnew\t\t\n' + 'Balance:\t0.60000000\n' + 'internal addresses\tm/0\txpubDUMMYXPUB1\n' + 'm/0 \tDUMMYADDRESS0\t0.00000000\tnew\t\t\n' + 'm/0 \tDUMMYADDRESS1\t0.10000000\tnew\t\t\n' + 'm/0 \tDUMMYADDRESS2\t0.20000000\tnew\t\t\n' + 'm/0 \tDUMMYADDRESS3\t0.30000000\tnew\t\t\n' + 'Balance:\t0.60000000\n' + 'Balance for mixdepth 0:\t1.20000000\n' + 'mixdepth\t1\n' + 'external addresses\tm/0\txpubDUMMYXPUB1\n' + 'm/0 \tDUMMYADDRESS1\t0.00000000\tnew\t\t\n' + 'm/0 \tDUMMYADDRESS2\t0.10000000\tnew\t\t\n' + 'm/0 \tDUMMYADDRESS3\t0.20000000\tnew\t\t\n' + 'm/0 \tDUMMYADDRESS4\t0.30000000\tnew\t\t\n' + 'Balance:\t0.60000000\n' + 'internal addresses\tm/0\txpubDUMMYXPUB2\n' + 'm/0 \tDUMMYADDRESS1\t0.00000000\tnew\t\t\n' + 'm/0 \tDUMMYADDRESS2\t0.10000000\tnew\t\t\n' + 'm/0 \tDUMMYADDRESS3\t0.20000000\tnew\t\t\n' + 'm/0 \tDUMMYADDRESS4\t0.30000000\tnew\t\t\n' + 'Balance:\t0.60000000\n' + 'Balance for mixdepth 1:\t1.20000000\n' + 'mixdepth\t2\n' + 'external addresses\tm/0\txpubDUMMYXPUB2\n' + 'm/0 \tDUMMYADDRESS2\t0.00000000\tnew\t\t\n' + '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' + 'internal addresses\tm/0\txpubDUMMYXPUB3\n' + 'm/0 \tDUMMYADDRESS2\t0.00000000\tnew\t\t\n' + '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)