Browse Source

test.py, test.py xmrwallet: minor fixes & cleanups

The MMGen Project 4 years ago
parent
commit
aa88e13aea
2 changed files with 35 additions and 31 deletions
  1. 1 1
      test/test.py
  2. 34 30
      test/test_py_d/ts_xmrwallet.py

+ 1 - 1
test/test.py

@@ -830,6 +830,7 @@ class TestSuiteRunner(object):
 			dpy=False
 		):
 
+		self.ts.test_name = cmd
 		rerun = root # force_delete is not passed to recursive call
 
 		fns = []
@@ -894,7 +895,6 @@ class TestSuiteRunner(object):
 		if opt.profile: start = time.time()
 
 		cdata = self.gm.dpy_data[cmd]
-		self.ts.test_name = cmd
 #		self.ts.test_dpydata = cdata
 		self.ts.tmpdir_num = cdata[0]
 #		self.ts.cfg = cfgs[str(cdata[0])] # will remove this eventually

+ 34 - 30
test/test_py_d/ts_xmrwallet.py

@@ -40,9 +40,11 @@ class TestSuiteXMRWallet(TestSuiteBase):
 	passthru_opts = ('coin',)
 	tmpdir_nums = [29]
 	dfl_random_txs = 3
+	color = True
 	cmd_group = (
 		('gen_kafiles',               'generating key-address files'),
-		('create_wallets',            'creating Monero wallets'),
+		('create_wallets_miner',      'creating Monero wallets (Miner)'),
+		('create_wallets_alice',      'creating Monero wallets (Alice)'),
 
 		('set_dest_miner',            'opening miner wallet'),
 		('mine_blocks',               'mining blocks'),
@@ -289,22 +291,21 @@ class TestSuiteXMRWallet(TestSuiteBase):
 		t.skip_ok = True
 		return t
 
-	def create_wallets(self):
-		for user,data in self.users.items():
-			if not data.kal_range:
-				continue
-			run('rm -f {}*'.format( data.walletfile_fs.format('*') ),shell=True)
-			dir_opt = [f'--outdir={data.udir}']
-			t = self.spawn(
-				'mmgen-xmrwallet',
-				self.long_opts + dir_opt + [ 'create', data.kafile, data.kal_range ],
-				extra_desc = f'({capfirst(user)})' )
-			t.expect('Check key-to-address validity? (y/N): ','n')
-			for i in MMGenRange(data.kal_range).items:
-				t.expect('Address: ')
-			t.read()
-			t.ok()
-		t.skip_ok = True
+	def create_wallets_miner(self): return self.create_wallets('miner')
+	def create_wallets_alice(self): return self.create_wallets('alice')
+
+	def create_wallets(self,user):
+		data = self.users[user]
+		run('rm -f {}*'.format( data.walletfile_fs.format('*') ),shell=True)
+		dir_opt = [f'--outdir={data.udir}']
+		t = self.spawn(
+			'mmgen-xmrwallet',
+			self.long_opts + dir_opt + [ 'create', data.kafile, data.kal_range ],
+			extra_desc = f'({capfirst(user)})' )
+		t.expect('Check key-to-address validity? (y/N): ','n')
+		for i in MMGenRange(data.kal_range).items:
+			t.expect('Address: ')
+		t.read()
 		return t
 
 	async def set_dest_miner(self):
@@ -326,13 +327,15 @@ class TestSuiteXMRWallet(TestSuiteBase):
 	def sync_wallets_selected(self):
 		return self.sync_wallets(wallets='1-2,4')
 
-	def sync_wallets(self,wallets=None):
+	def sync_wallets(self,wallets=None,add_opts=None):
 		data = self.users['alice']
-		dir_opt = [f'--outdir={data.udir}']
-		cmd_opts = [f'--daemon=localhost:{data.md.rpc_port}']
+		cmd_opts = list_gen(
+			[f'--outdir={data.udir}'],
+			[f'--daemon=localhost:{data.md.rpc_port}'],
+		)
 		t = self.spawn(
 			'mmgen-xmrwallet',
-			self.long_opts + dir_opt + cmd_opts + [ 'sync', data.kafile ] + ([wallets] if wallets else []) )
+			self.long_opts + cmd_opts + (add_opts or []) + [ 'sync', data.kafile ] + ([wallets] if wallets else []) )
 		t.expect('Check key-to-address validity? (y/N): ','n')
 		wlist = AddrIdxList(wallets) if wallets else MMGenRange(data.kal_range).items
 		for n,wnum in enumerate(wlist):
@@ -347,21 +350,22 @@ class TestSuiteXMRWallet(TestSuiteBase):
 		t.read()
 		return t
 
-	def do_op(self,op,user,spec,tx_relay_parm):
+	def do_op(self,op,user,arg2,tx_relay_parm=None):
 		data = self.users[user]
-		dir_opt = [f'--outdir={data.udir}']
 		cmd_opts = list_gen(
+			[f'--outdir={data.udir}'],
 			[f'--daemon=localhost:{data.md.rpc_port}'],
 			[f'--tx-relay-daemon={tx_relay_parm}', tx_relay_parm]
 		)
 		t = self.spawn(
 			'mmgen-xmrwallet',
-			self.long_opts + dir_opt + cmd_opts + [ op, data.kafile, spec ],
+			self.long_opts + cmd_opts + [ op, data.kafile, arg2 ],
 			extra_desc = f'({capfirst(user)})' )
+
 		t.expect('Check key-to-address validity? (y/N): ','n')
 		if op == 'sweep':
 			t.expect(
-				'Create new {} .* \(y/N\): '.format('account' if ',' in spec else 'address'),
+				'Create new {} .* \(y/N\): '.format('account' if ',' in arg2 else 'address'),
 				'y', regex=True )
 		t.expect(f'Relay {op} transaction? (y/N): ','y')
 		t.read()
@@ -373,13 +377,13 @@ class TestSuiteXMRWallet(TestSuiteBase):
 		return ret
 
 	def sweep_to_account(self):
-		ret = self.do_op('sweep','alice','1:0,2',None)
+		ret = self.do_op('sweep','alice','1:0,2')
 		self.set_dest('alice',2,1,lambda x: x > 1,'unlocked balance > 1')
 		return ret
 
 	def sweep_to_address_noproxy(self):
 		ret = self.do_op('sweep','alice','2:1',self.tx_relay_daemon_parm)
-		self.set_dest('alice',2,1,lambda x: x > 1,'unlocked balance > 1')
+		self.set_dest('alice',2,1,lambda x: x > 0.9,'unlocked balance > 0.9')
 		return ret
 
 	def transfer_to_miner_proxy(self):
@@ -509,19 +513,19 @@ class TestSuiteXMRWallet(TestSuiteBase):
 		h = await get_height()
 		imsg_r(f'Chain height: {h} ')
 
-		while True:
+		for i in range(500):
 			ub = await get_balance(self.dest)
 			if self.dest.test(ub):
 				imsg('')
 				oqmsg_r('+')
 				print_balance(self.dest,ub)
 				break
-#			else:
-#				imsg(f'Test {self.dest.test_desc!r} failed')
 			await asyncio.sleep(2)
 			h = await get_height()
 			imsg_r(f'{h} ')
 			oqmsg_r('+')
+		else:
+			die(2,'Timeout exceeded, balance {ub!r}')
 
 		await self.stop_mining()