minor cleanups
This commit is contained in:
parent
b01e825fc4
commit
fe3d4500a2
6 changed files with 43 additions and 22 deletions
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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'))))
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue