Browse Source

mmgen-xmrwallet label: add date to label

The MMGen Project 1 year ago
parent
commit
316beea60d
2 changed files with 15 additions and 12 deletions
  1. 10 7
      mmgen/xmrwallet.py
  2. 5 5
      test/cmdtest_py_d/ct_xmrwallet.py

+ 10 - 7
mmgen/xmrwallet.py

@@ -1615,6 +1615,7 @@ class MoneroWalletOps:
 					len(ret['addresses']) - 1 ))
 
 			addr = ret['addresses'][self.address_idx]
+			new_label = f'{self.label} [{make_timestr()}]' if self.label else ''
 
 			msg('\n  {a} {b}\n  {c} {d}\n  {e} {f}'.format(
 					a = 'Address:       ',
@@ -1624,18 +1625,20 @@ class MoneroWalletOps:
 					e = 'New label:     ',
 					f = pink(new_label) if new_label else gray('[none]') ))
 
-			if addr['label'] == self.label:
+			op = 'remove' if not new_label else 'update' if addr['label'] else 'set'
+
+			if addr['label'] == new_label:
 				ymsg('\nLabel is unchanged, operation cancelled')
-			elif keypress_confirm( self.cfg, '  {} label?'.format('Set' if self.label else 'Remove') ):
-				h.set_label( self.account, self.address_idx, self.label )
+			elif keypress_confirm(self.cfg, f'  {op.capitalize()} label?'):
+				h.set_label(self.account, self.address_idx, new_label)
 				accts_data = h.get_accts(print=False)[0]
 				ret = h.print_addrs(accts_data,self.account)
-				new_label = ret['addresses'][self.address_idx]['label']
-				if new_label != self.label:
-					ymsg(f'Warning: new label {new_label!r} does not match requested value!')
+				label_chk = ret['addresses'][self.address_idx]['label']
+				if label_chk != new_label:
+					ymsg(f'Warning: new label {label_chk!r} does not match requested value!')
 					return False
 				else:
-					msg(cyan('\nLabel successfully {}'.format('set' if self.label else 'removed')))
+					msg(cyan('\nLabel successfully {}'.format('set' if op == 'set' else op+'d')))
 			else:
 				ymsg('\nOperation cancelled by user request')
 

+ 5 - 5
test/cmdtest_py_d/ct_xmrwallet.py

@@ -455,15 +455,15 @@ class CmdTestXMRWallet(CmdTestBase):
 		)
 
 	def set_label_miner(self):
-		return self.set_label_user( 'miner', '1:0:0,"Miner’s new primary account label [1:0:0]"' )
+		return self.set_label_user('miner', '1:0:0,"Miner’s new primary account label [1:0:0]"', 'updated')
 
 	def remove_label_alice(self):
-		return self.set_label_user( 'alice', '4:2:2,""' )
+		return self.set_label_user('alice', '4:2:2,""', 'removed')
 
 	def set_label_alice(self):
-		return self.set_label_user( 'alice', '4:2:2,"Alice’s new subaddress label [4:2:2]"' )
+		return self.set_label_user('alice', '4:2:2,"Alice’s new subaddress label [4:2:2]"', 'set')
 
-	def set_label_user(self,user,label_spec):
+	def set_label_user(self,user,label_spec,expect):
 		data = self.users[user]
 		cmd_opts = [f'--wallet-dir={data.udir}', f'--daemon=localhost:{data.md.rpc_port}']
 		t = self.spawn(
@@ -471,7 +471,7 @@ class CmdTestXMRWallet(CmdTestBase):
 			self.extra_opts + cmd_opts + ['label', data.kafile, label_spec]
 		)
 		t.expect('(y/N): ','y')
-		t.expect(['successfully set','successfully removed'])
+		t.expect(f'Label successfully {expect}')
 		return t
 
 	def sync_wallets_all(self):