From 6a6aa02a341d19c71333b544e6c58960fa91ac01 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Mon, 17 Oct 2022 18:37:21 +0000 Subject: [PATCH] mmgen-msg: support --pager for verify operation --- mmgen/main_msg.py | 9 +++++++-- mmgen/msg.py | 5 ++--- test/unit_tests_d/ut_msg.py | 13 ++++++++----- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/mmgen/main_msg.py b/mmgen/main_msg.py index b0eefb84..807309dd 100755 --- a/mmgen/main_msg.py +++ b/mmgen/main_msg.py @@ -60,9 +60,14 @@ class MsgOps: except: m = ExportedMsgSigs( infile=msgfile ) - qmsg(m.format(addr) + '\n') + nSigs = await m.verify(addr) - await m.verify(addr,summary=True) + summary = f'{nSigs} signature{suf(nSigs)} verified' + + if opt.quiet: + msg(summary) + else: + stdout_or_pager(m.format(addr) + '\n\n' + summary + '\n') if m.data.get('failed_sids'): sys.exit(1) diff --git a/mmgen/msg.py b/mmgen/msg.py index 0a471281..db41c0cc 100755 --- a/mmgen/msg.py +++ b/mmgen/msg.py @@ -296,7 +296,7 @@ class coin_msg: return sigs - async def verify(self,addr=None,summary=False): + async def verify(self,addr=None): sigs = self.get_sigs(addr) @@ -313,8 +313,7 @@ class coin_msg: if not ret: die(3,f'Invalid signature for address {k} ({v["addr"]})') - if summary: - msg('{} signature{} verified'.format( len(sigs), suf(sigs) )) + return len(sigs) def get_json_for_export(self,addr=None): sigs = list( self.get_sigs(addr).values() ) diff --git a/test/unit_tests_d/ut_msg.py b/test/unit_tests_d/ut_msg.py index 874dabe9..87575321 100755 --- a/test/unit_tests_d/ut_msg.py +++ b/test/unit_tests_d/ut_msg.py @@ -7,7 +7,7 @@ import os from test.include.common import silence,end_silence,restart_test_daemons,stop_test_daemons from mmgen.opts import opt -from mmgen.util import msg,bmsg,pumsg +from mmgen.util import msg,bmsg,pumsg,suf from mmgen.protocol import CoinProtocol from mmgen.msg import NewMsg,UnsignedMsg,SignedMsg,SignedOnlineMsg,ExportedMsgSigs from mmgen.addr import MMGenID @@ -29,6 +29,9 @@ def get_obj(coin,network,msghash_type): addrlists = addrlists, msghash_type = msghash_type ) +def print_total(n): + msg(f'{n} signature{suf(n)} verified') + async def run_test(network_id,chksum,msghash_type='raw'): coin,network = CoinProtocol.Base.parse_network_id(network_id) @@ -78,10 +81,10 @@ async def run_test(network_id,chksum,msghash_type='raw'): msg(m.format(single_addr)) pumsg('\nTesting verification:\n') - await m.verify(summary=opt.verbose) + print_total( await m.verify() ) pumsg('\nTesting single address verification:\n') - await m.verify(single_addr,summary=opt.verbose) + print_total( await m.verify(single_addr) ) pumsg('\nTesting JSON dump for export:\n') msg( m.get_json_for_export() ) @@ -100,10 +103,10 @@ async def run_test(network_id,chksum,msghash_type='raw'): m = ExportedMsgSigs( infile=exported_sigs ) pumsg('\nTesting verification (exported data):\n') - await m.verify(summary=opt.verbose) + print_total( await m.verify() ) pumsg('\nTesting single address verification (exported data):\n') - await m.verify(single_addr_coin,summary=opt.verbose) + print_total( await m.verify(single_addr_coin) ) pumsg('\nTesting display (exported data):\n') msg(m.format())