mmgen-wallet/test/misc/input_func.py

42 lines
1.2 KiB
Python
Executable file

#!/usr/bin/env python3
# this script is used both for interactive and automated testing
import sys, os
os.chdir(os.path.dirname(os.path.dirname(os.path.abspath(os.path.dirname(sys.argv[0])))))
sys.path[0] = os.curdir
from mmgen.cfg import Config
from mmgen.util import msg
opts_data = {
'text': {
'desc': '',
'usage':'',
'options':'-e, --echo-passphrase foo',
}
}
cfg = Config(opts_data=opts_data)
match cfg._args:
case ['passphrase']:
from mmgen.ui import get_words_from_user
pw = get_words_from_user(
cfg,
('Enter passphrase: ', 'Enter passphrase (echoed): ')[bool(cfg.echo_passphrase)] )
msg('Entered: {}'.format(' '.join(pw)))
case 'get_char' | 'line_input' as cmd, args:
from mmgen.term import get_char
from mmgen.ui import line_input
from ast import literal_eval
func_args = literal_eval(args)
msg(f'\n term: {get_char.__self__.__name__}')
msg(f' cfg.hold_protect_disable: {cfg.hold_protect_disable}')
if cmd == 'line_input':
func_args.update({'cfg':cfg})
msg(' Calling {name}({args})'.format(
name = cmd,
args = ', '.join(f'{k}={v!r}' for k, v in func_args.items())
))
ret = locals()[cmd](**func_args)
msg(f' ==> {ret!r}')