mmgen-msg: support --pager for verify operation

This commit is contained in:
The MMGen Project 2022-10-17 18:37:21 +00:00
commit 6a6aa02a34
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 17 additions and 10 deletions

View file

@ -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)

View file

@ -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() )

View file

@ -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())