From fbb7020113c73f78381f944379eaeb91cd188d19 Mon Sep 17 00:00:00 2001 From: matograine <tom.ngr@zaclys.net> Date: Mon, 21 Sep 2020 19:50:24 +0200 Subject: [PATCH] [enh] #301 make `balance` use <pubkey:checksum> format * for display * as parameter * Change test_end_to_end.py to match new behavior --- silkaj/money.py | 11 +++++++++-- tests/test_end_to_end.py | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/silkaj/money.py b/silkaj/money.py index f9540b6d..3c41d06d 100644 --- a/silkaj/money.py +++ b/silkaj/money.py @@ -17,13 +17,15 @@ along with Silkaj. If not, see <https://www.gnu.org/licenses/>. from click import command, argument, pass_context, echo from tabulate import tabulate +import re from silkaj.network_tools import ClientInstance from silkaj.blockchain_tools import HeadBlock from silkaj.tools import CurrencySymbol, message_exit, coroutine from silkaj.auth import auth_method from silkaj.wot import check_public_key -from silkaj.tui import display_amount +from silkaj.tui import display_amount, pubkey_with_checksum +from silkaj.crypto_tools import PUBKEY_DELIMITED_PATTERN, check_public_key from duniterpy.api.bma import tx, blockchain from duniterpy.documents.transaction import InputSource @@ -43,12 +45,14 @@ async def cmd_amount(ctx, pubkeys): ): if not pubkeys: message_exit("You should specify one or many pubkeys") + checked_pubkeys = list() for pubkey in pubkeys: pubkey = check_public_key(pubkey, True) + checked_pubkeys.append(pubkey) if not pubkey: return total = [0, 0] - for pubkey in pubkeys: + for pubkey in checked_pubkeys: inputs_balance = await get_amount_from_pubkey(pubkey) await show_amount_from_pubkey(pubkey, inputs_balance) total[0] += inputs_balance[0] @@ -68,6 +72,9 @@ async def show_amount_from_pubkey(pubkey, inputs_balance): currency_symbol = await CurrencySymbol().symbol ud_value = await UDValue().ud_value average, monetary_mass = await get_average() + # if `pubkey` is a pubkey, get pubkey:checksum + if re.search(re.compile(PUBKEY_DELIMITED_PATTERN), pubkey): + pubkey = pubkey_with_checksum(pubkey) # display balance table display = list() display.append(["Balance of pubkey", pubkey]) diff --git a/tests/test_end_to_end.py b/tests/test_end_to_end.py index e761c2d1..3c8fa306 100644 --- a/tests/test_end_to_end.py +++ b/tests/test_end_to_end.py @@ -52,7 +52,7 @@ def test_balance(): silkaj + ["--gtest", "balance", "3dnbnYY9i2bHMQUGyFp5GVvJ2wBkVpus31cDJA5cfRpj"] ).decode() assert ( - "│ Balance of pubkey │ 3dnbnYY9i2bHMQUGyFp5GVvJ2wBkVpus31cDJA5cfRpj │" + "│ Balance of pubkey │ 3dnbnYY9i2bHMQUGyFp5GVvJ2wBkVpus31cDJA5cfRpj:EyF │" in output ) assert "│ Total amount (unit|relative) │" in output -- GitLab