cmdtest.py opts: cleanups
This commit is contained in:
parent
7131b892e3
commit
46381def86
2 changed files with 43 additions and 55 deletions
|
|
@ -67,13 +67,23 @@ class CmdTestOpts(CmdTestBase):
|
|||
('opt_invalid_16', (41, 'invalid cmdline (overlong arg)', [])),
|
||||
)
|
||||
|
||||
def spawn_prog(self, args, exit_val=None):
|
||||
return self.spawn('test/misc/opts.py', args, cmd_dir='.', exit_val=exit_val)
|
||||
def spawn_prog(self, args, opts=[], exit_val=None, need_proto=False):
|
||||
return self.spawn(
|
||||
'test/misc/opts.py',
|
||||
opts + args,
|
||||
cmd_dir = '.',
|
||||
exit_val = exit_val,
|
||||
env = {'TEST_MISC_OPTS_NEEDS_PROTO': '1' if need_proto else ''})
|
||||
|
||||
def check_vals(self, args, vals):
|
||||
t = self.spawn_prog(args)
|
||||
for k, v in vals:
|
||||
t.expect(rf'{k}:\s+{v}', regex=True)
|
||||
def check_vals(self, args, vals, check=True, need_proto=False):
|
||||
show_opts = [a.removeprefix('cfg.') for a, b in vals if a.startswith('cfg.')]
|
||||
t = self.spawn_prog(
|
||||
args,
|
||||
opts = ['--show-opts=' + ','.join(show_opts)] if show_opts else [],
|
||||
need_proto = need_proto)
|
||||
if check:
|
||||
for k, v in vals:
|
||||
t.expect(rf'{k}:\s+{v}', regex=True)
|
||||
return t
|
||||
|
||||
def do_run(self, args, expect, exit_val, regex=False):
|
||||
|
|
@ -249,49 +259,49 @@ class CmdTestOpts(CmdTestBase):
|
|||
def opt_bad_autoset(self):
|
||||
return self.do_run(['--fee-estimate-mode=Fubar'], 'not unique substring', 1)
|
||||
|
||||
def opt_invalid(self, args, expect, exit_val):
|
||||
def opt_invalid(self, args, expect, exit_val=1):
|
||||
t = self.spawn_prog(args, exit_val=exit_val)
|
||||
t.expect(expect)
|
||||
return t
|
||||
|
||||
def opt_invalid_1(self):
|
||||
return self.opt_invalid(['--x'], 'must be at least', 1)
|
||||
return self.opt_invalid(['--x'], 'must be at least')
|
||||
|
||||
def opt_invalid_2(self):
|
||||
return self.opt_invalid(['---'], 'must be at least', 1)
|
||||
return self.opt_invalid(['---'], 'must be at least')
|
||||
|
||||
def opt_invalid_5(self):
|
||||
return self.opt_invalid(['-l'], 'missing parameter', 1)
|
||||
return self.opt_invalid(['-l'], 'missing parameter')
|
||||
|
||||
def opt_invalid_6(self):
|
||||
return self.opt_invalid(['-l', '-k'], 'missing parameter', 1)
|
||||
return self.opt_invalid(['-l', '-k'], 'missing parameter')
|
||||
|
||||
def opt_invalid_7(self):
|
||||
return self.opt_invalid(['--quiet=1'], 'requires no parameter', 1)
|
||||
return self.opt_invalid(['--quiet=1'], 'requires no parameter')
|
||||
|
||||
def opt_invalid_8(self):
|
||||
return self.opt_invalid(['-w'], 'unrecognized option', 1)
|
||||
return self.opt_invalid(['-w'], 'unrecognized option')
|
||||
|
||||
def opt_invalid_9(self):
|
||||
return self.opt_invalid(['--frobnicate'], 'unrecognized option', 1)
|
||||
return self.opt_invalid(['--frobnicate'], 'unrecognized option')
|
||||
|
||||
def opt_invalid_10(self):
|
||||
return self.opt_invalid(['--label', '-q'], 'missing parameter', 1)
|
||||
return self.opt_invalid(['--label', '-q'], 'missing parameter')
|
||||
|
||||
def opt_invalid_11(self):
|
||||
return self.opt_invalid(['-T', '-10'], 'missing parameter', 1)
|
||||
return self.opt_invalid(['-T', '-10'], 'missing parameter')
|
||||
|
||||
def opt_invalid_12(self):
|
||||
return self.opt_invalid(['-q', '-10'], 'unrecognized option', 1)
|
||||
return self.opt_invalid(['-q', '-10'], 'unrecognized option')
|
||||
|
||||
def opt_invalid_13(self):
|
||||
return self.opt_invalid(['--mi=3'], 'ambiguous option', 1)
|
||||
return self.opt_invalid(['--mi=3'], 'ambiguous option')
|
||||
|
||||
def opt_invalid_14(self):
|
||||
return self.opt_invalid(['--m=3'], 'must be at least', 1)
|
||||
return self.opt_invalid(['--m=3'], 'must be at least')
|
||||
|
||||
def opt_invalid_15(self):
|
||||
return self.opt_invalid(['m'] * 257, 'too many', 1)
|
||||
return self.opt_invalid(['m'] * 257, 'too many')
|
||||
|
||||
def opt_invalid_16(self):
|
||||
return self.opt_invalid(['e' * 4097], 'too long', 1)
|
||||
return self.opt_invalid(['e' * 4097], 'too long')
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
|
||||
from mmgen.cfg import Config
|
||||
from mmgen.util import msg
|
||||
|
||||
|
|
@ -23,6 +25,7 @@ opts_data = {
|
|||
-L, --label= l Specify a label 'l' for output wallet
|
||||
-m, --minconf= n Minimum number of confirmations required to spend
|
||||
outputs (default: 1)
|
||||
-o, --show-opts= L List of cfg opts to display
|
||||
-p, --hash-preset= p Use the scrypt hash parameters defined by preset 'p'
|
||||
-P, --passwd-file= f Get wallet passphrase from file 'f'
|
||||
-q, --quiet Be quieter
|
||||
|
|
@ -43,45 +46,20 @@ sample note: {nn}
|
|||
},
|
||||
'code': {
|
||||
'options': lambda cfg, help_notes, s: s.format(
|
||||
kgs=help_notes('keygen_backends'),
|
||||
coin_id=help_notes('coin_id'),
|
||||
kgs = help_notes('keygen_backends'),
|
||||
coin_id = help_notes('coin_id'),
|
||||
),
|
||||
'notes': lambda s: s.format(nn='a note'),
|
||||
}
|
||||
}
|
||||
|
||||
cfg = Config(opts_data=opts_data)
|
||||
cfg = Config(opts_data=opts_data, need_proto=os.getenv('TEST_MISC_OPTS_NEEDS_PROTO'))
|
||||
|
||||
for k in (
|
||||
'foo', # added opt
|
||||
'print_checksum', # sets 'quiet'
|
||||
'quiet', 'verbose', # _incompatible_opts
|
||||
'passwd_file', # _infile_opts - check_infile()
|
||||
'outdir', # check_outdir()
|
||||
'cached_balances', # opt_sets_global
|
||||
'minconf', # global_sets_opt
|
||||
'hidden_incog_input_params',
|
||||
'keep_label',
|
||||
'seed_len',
|
||||
'hash_preset',
|
||||
'label',
|
||||
'min_temp',
|
||||
'max_temp',
|
||||
'coin',
|
||||
'pager',
|
||||
'point',
|
||||
'no_foobleize'):
|
||||
msg('{:30} {}'.format(f'cfg.{k}:', getattr(cfg, k)))
|
||||
|
||||
msg('')
|
||||
for k in (
|
||||
'cached_balances', # opt_sets_global
|
||||
'minconf'): # global_sets_opt
|
||||
msg('{:30} {}'.format(f'cfg.{k}:', getattr(cfg, k)))
|
||||
|
||||
msg('')
|
||||
for k in ('fee_estimate_mode',): # _autoset_opts
|
||||
msg('{:30} {}'.format(f'cfg.{k}:', getattr(cfg, k)))
|
||||
if cfg.show_opts:
|
||||
opts = cfg.show_opts.split(',')
|
||||
col1_w = max(len(s) for s in opts) + 5
|
||||
for opt in opts:
|
||||
msg('{:{w}} {}'.format(f'cfg.{opt}:', getattr(cfg, opt), w=col1_w))
|
||||
|
||||
msg('')
|
||||
for n, arg in enumerate(cfg._args, 1):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue