scripts/create-token.py, test.py oneshot_warning; minor fixes
This commit is contained in:
parent
016f83f0d7
commit
9c5f4de936
2 changed files with 16 additions and 15 deletions
|
|
@ -24,9 +24,9 @@ from mmgen.common import *
|
|||
ti = namedtuple('token_param_info',['default','conversion','test'])
|
||||
class TokenData:
|
||||
fields = ('decimals','supply','name','symbol','owner_addr')
|
||||
decimals = ti('18', int, lambda s: s.isdigit() and 0 < int(s) <= 36)
|
||||
decimals = ti('18', int, lambda s: s.isascii() and s.isdigit() and 0 < int(s) <= 36)
|
||||
name = ti(None, str, lambda s: s.isascii() and s.isprintable() and len(s) < 256)
|
||||
supply = ti(None, int, lambda s: s.isdigit() and 0 < int(s) <= 2**256 - 1)
|
||||
supply = ti(None, int, lambda s: s.isascii() and s.isdigit() and 0 < int(s) <= 2**256 - 1)
|
||||
symbol = ti(None, str, lambda s: s.isascii() and s.isalnum() and len(s) <= 20)
|
||||
owner_addr = ti(None, str, lambda s: s.isascii() and s.isalnum() and len(s) == 40) # checked separately
|
||||
|
||||
|
|
@ -180,20 +180,19 @@ def create_src(proto,template,token_data,owner_addr):
|
|||
def gen():
|
||||
for k in token_data.fields:
|
||||
field = getattr(token_data,k)
|
||||
val = (
|
||||
owner_addr if k == 'owner_addr' else
|
||||
getattr(opt,k) if getattr(opt,k,None) else
|
||||
field.default if field.default is not None else
|
||||
die(1,f'The --{k} option must be specified')
|
||||
)
|
||||
|
||||
if k == 'owner_addr':
|
||||
from mmgen.obj import is_coin_addr
|
||||
if not is_coin_addr( proto, owner_addr.lower() ):
|
||||
die(1,f'{owner_addr}: not a valid {proto.coin} coin address')
|
||||
val = '0x' + val
|
||||
elif not field.test(val):
|
||||
die(1,f'{val!r}: invalid parameter for option --{k}')
|
||||
val = '0x' + owner_addr
|
||||
else:
|
||||
val = (
|
||||
getattr(opt,k) if getattr(opt,k,None) else
|
||||
field.default if field.default is not None else
|
||||
die(1,f'The --{k} option must be specified')
|
||||
)
|
||||
if not field.test(val):
|
||||
die(1,f'{val!r}: invalid parameter for option --{k}')
|
||||
|
||||
yield(k,field.conversion(val))
|
||||
|
||||
|
|
|
|||
|
|
@ -123,8 +123,8 @@ class TestSuiteOutput(TestSuiteBase):
|
|||
|
||||
def oneshot_warning(self):
|
||||
t = self.spawn('test/misc/oneshot_warning.py',cmd_dir='.')
|
||||
t.expect('pw\nwg1')
|
||||
for s in (
|
||||
'pw\nwg1',
|
||||
'foo is experimental',
|
||||
'wg2', 'The bar command is dangerous',
|
||||
'wg3', 'baz variant alpha',
|
||||
|
|
@ -132,12 +132,14 @@ class TestSuiteOutput(TestSuiteBase):
|
|||
'w1', 'foo variant alpha',
|
||||
'w2', 'foo variant beta',
|
||||
'w3', 'bar is experimental',
|
||||
'bottom',
|
||||
'pw',
|
||||
"passphrase from file 'A'",
|
||||
"passphrase from file 'B'",
|
||||
'bottom',
|
||||
'wg1\nwg2\nwg3\nwg4\nw1\nw2\nw3',
|
||||
'pw',
|
||||
"passphrase from file 'A'",
|
||||
"passphrase from file 'B'",
|
||||
'wg1\nwg2\nwg3\nwg4\nw1\nw2\nw3',
|
||||
'bottom',
|
||||
):
|
||||
t.expect(s)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue