cmdtest.py: add/improve expect strings for non-zero exit_vals

This commit is contained in:
The MMGen Project 2024-03-09 11:33:27 +00:00
commit 12b830a104
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
4 changed files with 38 additions and 33 deletions

View file

@ -1 +1 @@
14.1.dev19
14.1.dev20

View file

@ -82,7 +82,7 @@ class CmdTestAutosignAutomount(CmdTestAutosignThreaded, CmdTestRegtestBDBWallet)
self.opts.append('--alice')
def _alice_txcreate(self, chg_addr, opts=[], exit_val=0):
def _alice_txcreate(self, chg_addr, opts=[], exit_val=0, expect=None):
self.insert_device_online()
sid = self._user_sid('alice')
t = self.spawn(
@ -100,6 +100,8 @@ class CmdTestAutosignAutomount(CmdTestAutosignThreaded, CmdTestRegtestBDBWallet)
inputs = '1',
interactive_fee = '32s',
file_desc = 'Unsigned automount transaction')
if expect:
t.expect(expect)
t.read()
self.remove_device_online()
return t
@ -117,41 +119,40 @@ class CmdTestAutosignAutomount(CmdTestAutosignThreaded, CmdTestRegtestBDBWallet)
return 'skip'
return self._alice_txcreate(chg_addr='L:4')
def _alice_txsend_abort(self, err=False, user_exit=False, del_expect=[]):
def _alice_txsend_abort(self, err=False, send_resp='y', expect=None, shred_expect=[]):
self.insert_device_online()
t = self.spawn(
'mmgen-txsend',
['--quiet', '--abort'],
exit_val = 2 if err else 1 if user_exit else None)
exit_val = 2 if err else 1 if send_resp == 'n' else None)
if err:
t.expect('No unsent transactions')
t.expect(expect)
else:
t.expect('(y/N): ', 'n' if user_exit else 'y')
if user_exit:
t.expect('Exiting at user request')
else:
for pat in del_expect:
t.expect(pat, regex=True)
t.expect('(y/N): ', send_resp)
if expect:
t.expect(expect)
for pat in shred_expect:
t.expect(pat, regex=True)
self.remove_device_online()
return t
def alice_txsend_abort1(self):
return self._alice_txsend_abort(del_expect=['Shredding .*arawtx'])
return self._alice_txsend_abort(shred_expect=['Shredding .*arawtx'])
def alice_txsend_abort2(self):
return self._alice_txsend_abort(err=True)
return self._alice_txsend_abort(err=True, expect='No unsent transactions')
def alice_txsend_abort3(self):
return self._alice_txsend_abort(user_exit=True)
return self._alice_txsend_abort(send_resp='n', expect='Exiting at user request')
def alice_txsend_abort4(self):
self._wait_signed('transaction')
return self._alice_txsend_abort(del_expect=[r'Shredding .*arawtx', r'Shredding .*asigtx'])
return self._alice_txsend_abort(shred_expect=[r'Shredding .*arawtx', r'Shredding .*asigtx'])
alice_txsend_abort5 = alice_txsend_abort2
def alice_txcreate_bad_have_unsigned(self):
return self._alice_txcreate(chg_addr='C:5', exit_val=2)
return self._alice_txcreate(chg_addr='C:5', exit_val=2, expect='already present')
def copy_wallet(self):
self.spawn('', msg_only=True)

View file

@ -155,9 +155,11 @@ class CmdTestCfgFile(CmdTestBase):
def old_sample_bad_var(self):
d = ['foo true','bar false']
write_to_file(self.path('usr'),'\n'.join(d) + '\n')
return self.old_sample_common(
t = self.old_sample_common(
old_set = True,
pexpect_spawn = not sys.platform == 'win32')
t.expect('unrecognized option')
return t
def _autoset_opts(self, args=[], text='rpc_backend aiohttp\n', exit_val=None):
write_to_file( self.path('usr'), text )
@ -170,14 +172,16 @@ class CmdTestCfgFile(CmdTestBase):
def autoset_opts_cmdline(self):
return self._autoset_opts(args=['--rpc-backend=curl','autoset_opts_cmdline'])
def _autoset_opts_bad(self,kwargs):
return self._autoset_opts(exit_val=1, **kwargs)
def _autoset_opts_bad(self, expect, kwargs):
t = self._autoset_opts(exit_val=1, **kwargs)
t.expect(expect)
return t
def autoset_opts_bad(self):
return self._autoset_opts_bad({'text':'rpc_backend foo\n'})
return self._autoset_opts_bad('not unique substring', {'text':'rpc_backend foo\n'})
def autoset_opts_bad_cmdline(self):
return self._autoset_opts_bad({'args':['--rpc-backend=foo']})
return self._autoset_opts_bad('not unique substring', {'args':['--rpc-backend=foo']})
def coin_specific_vars(self):
"""

View file

@ -243,7 +243,7 @@ class CmdTestSeedSplit(CmdTestBase):
def ss_bad_invocation(self,cmd,args,exit_val,errmsg):
t = self.spawn(cmd, args, exit_val=exit_val)
t.expect(errmsg)
t.expect(errmsg, regex=True)
return t
def ss_3way_join_dfl_bad_invocation(self):
@ -256,44 +256,44 @@ class CmdTestSeedSplit(CmdTestBase):
def ss_bad_invocation1(self):
return self.ss_bad_invocation(
'mmgen-seedsplit',[],1,'MMGenSystemExit(1)')
'mmgen-seedsplit', [], 1, 'USAGE:')
def ss_bad_invocation2(self):
return self.ss_bad_invocation(
'mmgen-seedsplit',['-M1','1:9'],1,'MMGenSystemExit(1)')
'mmgen-seedsplit', ['-M1', '1:9'], 1, 'meaningless in master share context')
def ss_bad_invocation3(self):
return self.ss_bad_invocation(
'mmgen-seedsplit',[self.tmpdir+'/no.mmdat','1:9'],1,'FileNotFound')
'mmgen-seedsplit', [self.tmpdir+'/no.mmdat', '1:9'], 1, 'input file .* not found')
def ss_bad_invocation4(self):
return self.ss_bad_invocation(
'mmgen-seedsplit',[self.tmpdir+'/dfl.sid','1:9'],1,'BadFileExtension')
'mmgen-seedsplit', [self.tmpdir+'/dfl.sid', '1:9'], 1, 'unrecognized .* extension')
def ss_bad_invocation5(self):
return self.ss_bad_invocation(
'mmgen-seedjoin',[],1,'MMGenSystemExit(1)')
'mmgen-seedjoin', [], 1, 'USAGE:')
def ss_bad_invocation6(self):
return self.ss_bad_invocation(
'mmgen-seedjoin',[self.tmpdir+'/a'],1,'MMGenSystemExit(1)')
'mmgen-seedjoin', [self.tmpdir+'/a'], 1, 'USAGE:')
def ss_bad_invocation7(self):
return self.ss_bad_invocation(
'mmgen-seedjoin',[self.tmpdir+'/a',self.tmpdir+'/b'],1,'BadFileExtension')
'mmgen-seedjoin', [self.tmpdir+'/a', self.tmpdir+'/b'], 1, 'unrecognized .* extension')
def ss_bad_invocation8(self):
return self.ss_bad_invocation(
'mmgen-seedjoin',[self.tmpdir+'/a.mmdat',self.tmpdir+'/b.mmdat'],1,'FileNotFound')
'mmgen-seedjoin', [self.tmpdir+'/a.mmdat', self.tmpdir+'/b.mmdat'], 1, 'input file .* not found')
def ss_bad_invocation9(self):
return self.ss_bad_invocation(
'mmgen-seedsplit',['x'],1,'MMGenSystemExit(1)')
'mmgen-seedsplit', ['x'], 1, 'USAGE:')
def ss_bad_invocation10(self):
return self.ss_bad_invocation(
'mmgen-seedsplit',[self.tmpdir+'/a.mmdat','1:2'],1,'FileNotFound')
'mmgen-seedsplit', [self.tmpdir+'/a.mmdat', '1:2'], 1, 'input file .* not found')
def ss_bad_invocation11(self):
return self.ss_bad_invocation(
'mmgen-seedsplit',[self.tmpdir+'/dfl.sid','1:2'],1,'BadFileExtension')
'mmgen-seedsplit', [self.tmpdir+'/dfl.sid', '1:2'], 1, 'unrecognized .* extension')