From 316beea60d5479839d34b16d5a4632a9eaf81ab7 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sat, 10 Feb 2024 15:10:44 +0000 Subject: [PATCH] mmgen-xmrwallet label: add date to label --- mmgen/xmrwallet.py | 17 ++++++++++------- test/cmdtest_py_d/ct_xmrwallet.py | 10 +++++----- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/mmgen/xmrwallet.py b/mmgen/xmrwallet.py index 2cba8895..d9cab827 100755 --- a/mmgen/xmrwallet.py +++ b/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') diff --git a/test/cmdtest_py_d/ct_xmrwallet.py b/test/cmdtest_py_d/ct_xmrwallet.py index a716236f..d302050a 100755 --- a/test/cmdtest_py_d/ct_xmrwallet.py +++ b/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):