Browse Source

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

The MMGen Project 1 year ago
parent
commit
12b830a104

+ 1 - 1
mmgen/data/version

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

+ 16 - 15
test/cmdtest_py_d/ct_automount.py

@@ -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)

+ 9 - 5
test/cmdtest_py_d/ct_cfgfile.py

@@ -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):
 		"""

+ 12 - 12
test/cmdtest_py_d/ct_seedsplit.py

@@ -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')