minor cleanups

This commit is contained in:
The MMGen Project 2023-05-06 15:14:06 +00:00
commit fe3d4500a2
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
6 changed files with 43 additions and 22 deletions

View file

@ -51,8 +51,8 @@ class Signable:
def _unprocessed(self,attrname,rawext,sigext):
if not hasattr(self,attrname):
dirlist = tuple(self.dir.iterdir())
names = tuple(f.name for f in dirlist)
dirlist = sorted(self.dir.iterdir())
names = {f.name for f in dirlist}
setattr(
self,
attrname,
@ -126,11 +126,22 @@ class Signable:
for f in bad_files:
yield red(f.name)
class xmr_transaction(transaction):
class xmr_signable(transaction): # virtual class
def print_summary(self,signables):
bmsg('\nAutosign summary:')
msg(
self.summary_indent
+ f'\n{self.summary_indent}'.join(s.get_info() for s in signables)
+ self.summary_footer )
class xmr_transaction(xmr_signable):
dir_name = 'xmr_tx_dir'
desc = 'Monero transaction'
subext = 'subtx'
multiple_ok = False
summary_indent = ''
summary_footer = ''
async def sign(self,f):
from .xmrwallet import MoneroMMGenTX,MoneroWalletOps,xmrwallet_uargs
@ -146,16 +157,14 @@ class Signable:
tx2.write(ask_write=False)
return tx2
def print_summary(self,txs):
bmsg('\nAutosign summary:\n')
msg_r('\n'.join(tx.get_info() for tx in txs))
class xmr_wallet_outputs_file(transaction):
class xmr_wallet_outputs_file(xmr_signable):
desc = 'Monero wallet outputs file'
rawext = 'raw'
sigext = 'sig'
dir_name = 'xmr_outputs_dir'
clean_all = True
summary_indent = ' '
summary_footer = '\n'
async def sign(self,f):
from .xmrwallet import MoneroWalletOps,xmrwallet_uargs
@ -171,10 +180,6 @@ class Signable:
obj.write()
return obj
def print_summary(self,txs):
bmsg('\nAutosign summary:')
msg(' ' + '\n '.join(tx.get_info() for tx in txs) + '\n')
class message(base):
desc = 'message file'
rawext = 'rawmsg.json'
@ -577,7 +582,6 @@ class Autosign:
prev_status = status
if not n % 10:
msg_r(f"\r{' '*17}\rWaiting")
sys.stderr.flush()
await asyncio.sleep(1)
msg_r('.')
n += 1
@ -601,7 +605,7 @@ class Autosign:
from .led import LEDControl
self.led = LEDControl(
enabled = self.cfg.led,
simulate = os.getenv('MMGEN_TEST_SUITE_AUTOSIGN_LED_SIMULATE') )
simulate = self.cfg.test_suite_autosign_led_simulate )
self.led.set('off')
def get_autosign_obj(cfg,coins=None):

View file

@ -38,7 +38,14 @@ NL = '\n'
class MMGenPexpect:
def __init__(self,args,no_output=False,env=None,pexpect_spawn=False,send_delay=None,timeout=None):
def __init__(
self,
args,
no_output = False,
env = None,
pexpect_spawn = False,
send_delay = None,
timeout = None ):
self.pexpect_spawn = pexpect_spawn
self.send_delay = send_delay

View file

@ -624,7 +624,9 @@ class TestSuiteRunner(object):
clr2(repr(cmd_disp) if gc.platform == 'win' else cmd_disp)
)
else:
omsg_r(f'{t_pfx}Testing {desc}: ')
omsg_r('{a}Testing {b}: '.format(
a = t_pfx,
b = desc )
if msg_only:
return
@ -918,7 +920,8 @@ class TestSuiteRunner(object):
elif ret == 'error':
die(2,red(f'\nTest {self.ts.test_name!r} failed'))
elif ret in ('skip','silent'):
pass
if ret == 'silent':
self.cmd_total += 1
elif type(ret) == tuple and ret[0] == 'skip_warn':
self.skipped_warnings.append(
'Test {!r} was skipped:\n {}'.format(cmd,'\n '.join(ret[1].split('\n'))))

View file

@ -74,6 +74,13 @@ class TestSuiteBase:
def write_to_tmpfile(self,fn,data,binary=False):
return write_to_file(os.path.join(self.tmpdir,fn),data,binary=binary)
def delete_tmpfile(self,fn):
fn = os.path.join(self.tmpdir,fn)
try:
return os.unlink(fn)
except:
msg(f'{fn}: file does not exist or could not be deleted')
def skip_for_win(self):
if gc.platform == 'win':
msg(f'Skipping test {self.test_name!r}: not supported on MSys2 platform')

View file

@ -228,7 +228,7 @@ class TestSuiteXMRAutosign(TestSuiteXMRWallet,TestSuiteAutosignBase):
def sign_transfer_tx2(self):
return self._sign_transfer_tx()
def _xmr_autosign_op(self,op,desc,dtype=None,ext=None,wallet_arg=None,add_opts=[]):
def _xmr_autosign_op(self,op,desc=None,dtype=None,ext=None,wallet_arg=None,add_opts=[]):
data = self.users['alice']
args = (
self.extra_opts
@ -239,7 +239,8 @@ class TestSuiteXMRAutosign(TestSuiteXMRWallet,TestSuiteAutosignBase):
+ ([get_file_with_ext(self.asi.xmr_tx_dir,ext)] if ext else [])
+ ([wallet_arg] if wallet_arg else [])
)
t = self.spawn( 'mmgen-xmrwallet', args, extra_desc=f'({desc}, Alice)' )
desc_pfx = f'{desc}, ' if desc else ''
t = self.spawn( 'mmgen-xmrwallet', args, extra_desc=f'({desc_pfx}Alice)' )
if dtype:
t.written_to_file(dtype.capitalize())
return t
@ -281,7 +282,6 @@ class TestSuiteXMRAutosign(TestSuiteXMRWallet,TestSuiteAutosignBase):
data = self.users['alice']
t = self._xmr_autosign_op(
op = op,
desc = 'submitting TX',
add_opts = [f'--tx-relay-daemon={relay_parm}'] if relay_parm else [],
ext = ext )
t.expect( f'{op.capitalize()} transaction? (y/N): ', 'y' )
@ -295,7 +295,6 @@ class TestSuiteXMRAutosign(TestSuiteXMRWallet,TestSuiteAutosignBase):
def _export_outputs(self,wallet_arg,add_opts=[]):
return self._xmr_autosign_op(
op = 'export-outputs',
desc = 'exporting outputs',
dtype = 'wallet outputs',
wallet_arg = wallet_arg,
add_opts = add_opts )
@ -319,7 +318,6 @@ class TestSuiteXMRAutosign(TestSuiteXMRWallet,TestSuiteAutosignBase):
def _import_key_images(self,wallet_arg):
return self._xmr_autosign_op(
op = 'import-key-images',
desc = 'importing key images',
wallet_arg = wallet_arg )
def import_key_images1(self):

View file

@ -398,7 +398,9 @@ class TestSuiteXMRWallet(TestSuiteBase):
fr'Account index:\s+2\s+Creating new address.*Alice’s new address' )
async def mine_initial_coins(self):
self.spawn('', msg_only=True, extra_desc='(opening wallet)')
await self.open_wallet_user('miner',1)
ok()
return await self.mine_chk('miner',1,0,lambda x: x.ub > 20,'unlocked balance > 20')
async def fund_alice(self):