test.py: always check output when spawned script exits with non-zero value
This commit is contained in:
parent
d30fbba837
commit
2061d109cc
6 changed files with 49 additions and 28 deletions
|
|
@ -58,3 +58,8 @@ def launch(mod):
|
|||
][e.mmcode if hasattr(e,'mmcode') else 0]
|
||||
|
||||
d[0](d[1],d[2].format(n=type(e).__name__,m=m))
|
||||
except SystemExit as e:
|
||||
if os.getenv('MMGEN_EXEC_WRAPPER') and e.code != 0:
|
||||
from mmgen.color import red
|
||||
sys.stdout.write(red(f'{type(e).__name__}: {e}\n'))
|
||||
raise
|
||||
|
|
|
|||
|
|
@ -486,11 +486,9 @@ class TestSuiteEthdev(TestSuiteBase,TestSuiteShared):
|
|||
fn = self.get_file_with_ext(ext,no_dot=True,delete=False)
|
||||
t = self.spawn('mmgen-addrimport', self.eth_args[1:-1] + add_args + [fn])
|
||||
if bad_input:
|
||||
t.read()
|
||||
return t
|
||||
t.expect('Importing')
|
||||
t.expect(expect)
|
||||
t.read()
|
||||
return t
|
||||
|
||||
def addrimport_one_addr(self,addr=None,extra_args=[]):
|
||||
|
|
@ -637,7 +635,6 @@ class TestSuiteEthdev(TestSuiteBase,TestSuiteShared):
|
|||
t.expect(expect_str)
|
||||
if expect_str2:
|
||||
t.expect(expect_str2)
|
||||
t.read()
|
||||
t.req_exit_val = exit_val
|
||||
return t
|
||||
|
||||
|
|
@ -898,11 +895,13 @@ class TestSuiteEthdev(TestSuiteBase,TestSuiteShared):
|
|||
|
||||
def token_addrimport_badaddr1(self):
|
||||
t = self.addrimport(ext='[11-13]{}.regtest.addrs',add_args=['--token=abc'],bad_input=True)
|
||||
t.expect('could not be resolved')
|
||||
t.req_exit_val = 2
|
||||
return t
|
||||
|
||||
def token_addrimport_badaddr2(self):
|
||||
t = self.addrimport(ext='[11-13]{}.regtest.addrs',add_args=['--token='+'00deadbeef'*4],bad_input=True)
|
||||
t.expect('could not be resolved')
|
||||
t.req_exit_val = 2
|
||||
return t
|
||||
|
||||
|
|
@ -967,12 +966,10 @@ class TestSuiteEthdev(TestSuiteBase,TestSuiteShared):
|
|||
def token_bal2(self):
|
||||
return self.token_bal(n='2')
|
||||
|
||||
def twview(self,args=[],expect_str='',tool_args=[],exit_val=0):
|
||||
def twview(self,args=[],expect_str='',tool_args=[]):
|
||||
t = self.spawn('mmgen-tool', self.eth_args + args + ['twview'] + tool_args)
|
||||
if expect_str:
|
||||
t.expect(expect_str,regex=True)
|
||||
t.read()
|
||||
t.req_exit_val = exit_val
|
||||
return t
|
||||
|
||||
def token_txcreate2(self):
|
||||
|
|
@ -1024,11 +1021,8 @@ class TestSuiteEthdev(TestSuiteBase,TestSuiteShared):
|
|||
def bal9(self): return self.bal(n='9')
|
||||
def token_bal6(self): return self.token_bal(n='6')
|
||||
|
||||
def listaddresses(self,args=[],tool_args=['all_labels=1'],exit_val=0):
|
||||
t = self.spawn('mmgen-tool', self.eth_args + args + ['listaddresses'] + tool_args)
|
||||
t.read()
|
||||
t.req_exit_val = exit_val
|
||||
return t
|
||||
def listaddresses(self,args=[],tool_args=['all_labels=1']):
|
||||
return self.spawn('mmgen-tool', self.eth_args + args + ['listaddresses'] + tool_args)
|
||||
|
||||
def listaddresses1(self):
|
||||
return self.listaddresses()
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ class TestSuiteHelp(TestSuiteBase):
|
|||
def usage(self):
|
||||
t = self.spawn(f'mmgen-walletgen',['foo'])
|
||||
t.expect('USAGE: mmgen-walletgen')
|
||||
t.expect('SystemExit: 1')
|
||||
t.req_exit_val = 1
|
||||
return t
|
||||
|
||||
|
|
|
|||
|
|
@ -469,13 +469,12 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared):
|
|||
|
||||
def bob_twview1(self): return self.user_twview('bob', chk = ('1',rtAmts[0]) )
|
||||
|
||||
def user_bal(self,user,bal,args=['showempty=1'],skip_check=False,exit_val=0):
|
||||
def user_bal(self,user,bal,args=['showempty=1'],skip_check=False):
|
||||
t = self.spawn('mmgen-tool',['--'+user,'listaddresses'] + args)
|
||||
if skip_check:
|
||||
t.read()
|
||||
else:
|
||||
cmp_or_die(f'{bal} {self.proto.coin}',strip_ansi_escapes(t.expect_getend('TOTAL: ')))
|
||||
t.req_exit_val = exit_val
|
||||
return t
|
||||
|
||||
def alice_bal1(self):
|
||||
|
|
|
|||
|
|
@ -134,7 +134,6 @@ class TestSuiteSeedSplit(TestSuiteBase):
|
|||
+ (['--label','Joined Wallet Label','-r0'] if ofmt == 'w' else [])
|
||||
+ shares)
|
||||
if bad_invocation:
|
||||
t.read()
|
||||
return t
|
||||
icls = ( MMGenWallet if 'mmdat' in in_exts
|
||||
else IncogWallet if 'mmincog' in in_exts
|
||||
|
|
@ -209,10 +208,10 @@ class TestSuiteSeedSplit(TestSuiteBase):
|
|||
return self.ss_join(self.tdir2,'seed', ['mmhex','bip39'],
|
||||
['-H',self.get_hincog_arg(self.tdir2,'-master7')],master=7,id_str='φυβαρ')
|
||||
|
||||
def ss_bad_invocation(self,cmd,args,exit_val):
|
||||
def ss_bad_invocation(self,cmd,args,exit_val,errmsg):
|
||||
t = self.spawn(cmd,args)
|
||||
t.read()
|
||||
t.req_exit_val = exit_val
|
||||
t.expect(errmsg)
|
||||
return t
|
||||
|
||||
def ss_3way_join_dfl_bad_invocation(self):
|
||||
|
|
@ -220,28 +219,51 @@ class TestSuiteSeedSplit(TestSuiteBase):
|
|||
['mmwords','mmincox','bip39'],
|
||||
id_str='foo',
|
||||
bad_invocation=True)
|
||||
t.expect('option meaningless')
|
||||
t.req_exit_val = 1
|
||||
return t
|
||||
|
||||
|
||||
def ss_bad_invocation1(self):
|
||||
return self.ss_bad_invocation('mmgen-seedsplit',[],1)
|
||||
return self.ss_bad_invocation(
|
||||
'mmgen-seedsplit',[],1,'SystemExit: 1')
|
||||
|
||||
def ss_bad_invocation2(self):
|
||||
return self.ss_bad_invocation('mmgen-seedsplit',['-M1','1:9'],1)
|
||||
return self.ss_bad_invocation(
|
||||
'mmgen-seedsplit',['-M1','1:9'],1,'SystemExit: 1')
|
||||
|
||||
def ss_bad_invocation3(self):
|
||||
return self.ss_bad_invocation('mmgen-seedsplit',[self.tmpdir+'/no.mmdat','1:9'],1)
|
||||
return self.ss_bad_invocation(
|
||||
'mmgen-seedsplit',[self.tmpdir+'/no.mmdat','1:9'],1,'exception.FileNotFound')
|
||||
|
||||
def ss_bad_invocation4(self):
|
||||
return self.ss_bad_invocation('mmgen-seedsplit',[self.tmpdir+'/dfl.sid','1:9'],1)
|
||||
return self.ss_bad_invocation(
|
||||
'mmgen-seedsplit',[self.tmpdir+'/dfl.sid','1:9'],1,'exception.BadFileExtension')
|
||||
|
||||
def ss_bad_invocation5(self):
|
||||
return self.ss_bad_invocation('mmgen-seedjoin',[],1)
|
||||
return self.ss_bad_invocation(
|
||||
'mmgen-seedjoin',[],1,'SystemExit: 1')
|
||||
|
||||
def ss_bad_invocation6(self):
|
||||
return self.ss_bad_invocation('mmgen-seedjoin',[self.tmpdir+'/a'],1)
|
||||
return self.ss_bad_invocation(
|
||||
'mmgen-seedjoin',[self.tmpdir+'/a'],1,'SystemExit: 1')
|
||||
|
||||
def ss_bad_invocation7(self):
|
||||
return self.ss_bad_invocation('mmgen-seedjoin',[self.tmpdir+'/a',self.tmpdir+'/b'],1)
|
||||
return self.ss_bad_invocation(
|
||||
'mmgen-seedjoin',[self.tmpdir+'/a',self.tmpdir+'/b'],1,'exception.BadFileExtension')
|
||||
|
||||
def ss_bad_invocation8(self):
|
||||
return self.ss_bad_invocation('mmgen-seedjoin',[self.tmpdir+'/a.mmdat',self.tmpdir+'/b.mmdat'],1)
|
||||
return self.ss_bad_invocation(
|
||||
'mmgen-seedjoin',[self.tmpdir+'/a.mmdat',self.tmpdir+'/b.mmdat'],1,'exception.FileNotFound')
|
||||
|
||||
def ss_bad_invocation9(self):
|
||||
return self.ss_bad_invocation('mmgen-seedsplit',['x'],1)
|
||||
return self.ss_bad_invocation(
|
||||
'mmgen-seedsplit',['x'],1,'SystemExit: 1')
|
||||
|
||||
def ss_bad_invocation10(self):
|
||||
return self.ss_bad_invocation('mmgen-seedsplit',[self.tmpdir+'/a.mmdat','1:2'],1)
|
||||
return self.ss_bad_invocation(
|
||||
'mmgen-seedsplit',[self.tmpdir+'/a.mmdat','1:2'],1,'exception.FileNotFound')
|
||||
|
||||
def ss_bad_invocation11(self):
|
||||
return self.ss_bad_invocation('mmgen-seedsplit',[self.tmpdir+'/dfl.sid','1:2'],1)
|
||||
return self.ss_bad_invocation(
|
||||
'mmgen-seedsplit',[self.tmpdir+'/dfl.sid','1:2'],1,'exception.BadFileExtension')
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ class TestSuiteTool(TestSuiteMain,TestSuiteBase):
|
|||
def tool_twview_bad_comment(self): # test correct operation of get_tw_label()
|
||||
os.environ['MMGEN_BOGUS_WALLET_DATA'] = joinpath(ref_dir,'bad-comment-unspent.json')
|
||||
t = self.spawn('mmgen-tool',['twview'])
|
||||
t.read()
|
||||
t.expect('cannot be converted to TwComment')
|
||||
t.req_exit_val = 2
|
||||
return t
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue