test.py regtest: add color support
This commit is contained in:
parent
797d5cfe03
commit
53cffc64db
4 changed files with 67 additions and 35 deletions
|
|
@ -698,7 +698,7 @@ class TestSuiteRunner(object):
|
|||
self.ts.test_name,
|
||||
cmd_disp))
|
||||
|
||||
os.environ['MMGEN_FORCE_COLOR'] = ('1' if self.ts.color else '')
|
||||
os.environ['MMGEN_FORCE_COLOR'] = ('1' if self.ts.color and g.platform == 'linux' else '')
|
||||
|
||||
from test.include.pexpect import MMGenPexpect
|
||||
return MMGenPexpect(args,no_output=no_output)
|
||||
|
|
|
|||
|
|
@ -553,7 +553,7 @@ class TestSuiteMain(TestSuiteBase,TestSuiteShared):
|
|||
f,t = self._walletconv_export(wf,out_fmt=out_fmt,pf=pf)
|
||||
silence()
|
||||
wcls = Wallet.fmt_code_to_type(out_fmt)
|
||||
msg('{}: {}'.format(capfirst(wcls.desc),cyan(get_data_from_file(f,wcls.desc))))
|
||||
msg('==> {}: {}'.format(wcls.desc,cyan(get_data_from_file(f,wcls.desc))))
|
||||
end_silence()
|
||||
return t
|
||||
|
||||
|
|
|
|||
|
|
@ -140,6 +140,7 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared):
|
|||
passthru_opts = ('coin',)
|
||||
extra_spawn_args = ['--regtest=1']
|
||||
tmpdir_nums = [17]
|
||||
color = True
|
||||
cmd_group = (
|
||||
('setup', 'regtest (Bob and Alice) mode setup'),
|
||||
('current_user', 'current user'),
|
||||
|
|
@ -231,11 +232,11 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared):
|
|||
('alice_add_label_badaddr2', 'adding a label with invalid address for this chain'),
|
||||
('alice_add_label_badaddr3', 'adding a label with wrong MMGen address'),
|
||||
('alice_add_label_badaddr4', 'adding a label with wrong coin address'),
|
||||
('alice_listaddresses', 'listaddresses'),
|
||||
('alice_listaddresses1', 'listaddresses'),
|
||||
('alice_listaddresses_days', 'listaddresses (age_fmt=days)'),
|
||||
('alice_listaddresses_date', 'listaddresses (age_fmt=date)'),
|
||||
('alice_listaddresses_date_time', 'listaddresses (age_fmt=date_time)'),
|
||||
('alice_twview', 'twview'),
|
||||
('alice_twview1', 'twview'),
|
||||
('alice_twview_days', 'twview (age_fmt=days)'),
|
||||
('alice_twview_date', 'twview (age_fmt=date)'),
|
||||
('alice_twview_date_time', 'twview (age_fmt=date_time)'),
|
||||
|
|
@ -378,20 +379,21 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared):
|
|||
def fund_alice(self):
|
||||
return self.fund_wallet('alice',('L','S')[self.proto.cap('segwit')],rtFundAmt)
|
||||
|
||||
def user_twview(self,user,chk=None,sort='age'):
|
||||
def user_twview(self,user,chk,sort='age'):
|
||||
t = self.spawn('mmgen-tool',['--'+user,'twview','sort='+sort])
|
||||
if chk: t.expect(chk,regex=True)
|
||||
if chk:
|
||||
t.expect(r'{}\b.*\D{}\b'.format(*chk),regex=True)
|
||||
t.read()
|
||||
return t
|
||||
|
||||
def bob_twview1(self): return self.user_twview('bob',chk=r'1\).*\b{}\b'.format(rtAmts[0]))
|
||||
def bob_twview1(self): return self.user_twview('bob', chk = ('1',rtAmts[0]) )
|
||||
|
||||
def user_bal(self,user,bal,args=['showempty=1'],skip_check=False,exit_val=0):
|
||||
t = self.spawn('mmgen-tool',['--'+user,'listaddresses'] + args)
|
||||
if skip_check:
|
||||
t.read()
|
||||
else:
|
||||
cmp_or_die(f'{bal} {self.proto.coin}',t.expect_getend('TOTAL: '))
|
||||
cmp_or_die(f'{bal} {self.proto.coin}',strip_ansi_escapes(t.expect_getend('TOTAL: ')))
|
||||
t.req_exit_val = exit_val
|
||||
return t
|
||||
|
||||
|
|
@ -460,11 +462,11 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared):
|
|||
|
||||
def bob_twview2(self):
|
||||
sid1 = self._get_user_subsid('bob','29L')
|
||||
return self.user_twview('bob',chk=r'\b{}:C:2\b\s+{}'.format(sid1,'0.29'),sort='twmmid')
|
||||
return self.user_twview('bob',chk=(sid1+':C:2','0.29'),sort='twmmid')
|
||||
|
||||
def bob_twview3(self):
|
||||
sid2 = self._get_user_subsid('bob','127S')
|
||||
return self.user_twview('bob',chk=r'\b{}:C:3\b\s+{}'.format(sid2,'0.127'),sort='amt')
|
||||
return self.user_twview('bob',chk=(sid2+':C:3','0.127'),sort='amt')
|
||||
|
||||
def bob_subwallet_txcreate(self):
|
||||
sid1 = self._get_user_subsid('bob','29L')
|
||||
|
|
@ -494,14 +496,20 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared):
|
|||
def bob_twview4(self):
|
||||
sid = self._user_sid('bob')
|
||||
amt = ('0.4169328','0.41364')[self.proto.coin=='LTC']
|
||||
return self.user_twview('bob',chk=r'\b{}:L:5\b\s+.*\s+\b{}\b'.format(sid,amt),sort='twmmid')
|
||||
return self.user_twview('bob',chk=(sid+':L:5',amt),sort='twmmid')
|
||||
|
||||
def bob_getbalance(self,bals,confs=1):
|
||||
for i in (0,1,2):
|
||||
assert Decimal(bals['mmgen'][i]) + Decimal(bals['nonmm'][i]) == Decimal(bals['total'][i])
|
||||
t = self.spawn('mmgen-tool',['--bob','getbalance','minconf={}'.format(confs)])
|
||||
t.expect('Wallet')
|
||||
for k in ('mmgen','nonmm','total'):
|
||||
t.expect(r'\n\S+:\s+{} {c}\s+{} {c}\s+{} {c}'.format(*bals[k],c=self.proto.coin),regex=True)
|
||||
ret = strip_ansi_escapes(t.expect_getend(r'\S+: ',regex=True))
|
||||
cmp_or_die(
|
||||
' '.join(bals[k]),
|
||||
re.sub(rf'\s+{self.proto.coin}\s*',' ',ret).strip(),
|
||||
desc=k,
|
||||
)
|
||||
t.read()
|
||||
return t
|
||||
|
||||
|
|
@ -799,13 +807,14 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared):
|
|||
|
||||
def _user_chk_label(self,user,addr,label):
|
||||
t = self.spawn('mmgen-tool',['--'+user,'listaddresses','all_labels=1'])
|
||||
t.expect(r'{}\s+\S{{30}}\S+\s+{}\s+'.format(addr,label),regex=True)
|
||||
ret = strip_ansi_escapes(t.expect_getend(addr)).strip().split(None,1)[1]
|
||||
cmp_or_die(ret[:len(label)],label)
|
||||
return t
|
||||
|
||||
def alice_add_label_coinaddr(self):
|
||||
mmid = self._user_sid('alice') + (':S:1',':L:1')[self.proto.coin=='BCH']
|
||||
t = self.spawn('mmgen-tool',['--alice','listaddress',mmid],no_msg=True)
|
||||
addr = [i for i in t.read().splitlines() if i.startswith(mmid)][0].split()[1]
|
||||
addr = [i for i in strip_ansi_escapes(t.read()).splitlines() if i.startswith(mmid)][0].split()[1]
|
||||
return self.user_add_label('alice',addr,'Label added using coin address of MMGen address')
|
||||
|
||||
def alice_chk_label_coinaddr(self):
|
||||
|
|
@ -877,50 +886,73 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared):
|
|||
t.expect(r'\[q\]uit view, .*?:.','q',regex=True)
|
||||
return t
|
||||
|
||||
def alice_listaddresses(self,args=[],expect=None):
|
||||
expect = expect or rf'{rtAmts[1]}\b'
|
||||
def alice_listaddresses(self,args,expect):
|
||||
t = self.spawn('mmgen-tool',['--alice','listaddresses','showempty=1'] + args)
|
||||
t.expect(expect,regex=True)
|
||||
expect_str = r'\D{}\D.*\b{}'.format(*expect)
|
||||
t.expect(expect_str,regex=True)
|
||||
t.read()
|
||||
return t
|
||||
|
||||
def alice_listaddresses1(self):
|
||||
return self.alice_listaddresses(
|
||||
args = [],
|
||||
expect = (rtAmts[1],r'\d+') )
|
||||
|
||||
def alice_listaddresses_days(self):
|
||||
return self.alice_listaddresses(args=['age_fmt=days'],expect=rf'{rtAmts[1]}\s+\d+\b')
|
||||
return self.alice_listaddresses(
|
||||
args = ['age_fmt=days'],
|
||||
expect = (rtAmts[1],r'\d+') )
|
||||
|
||||
def alice_listaddresses_date(self):
|
||||
return self.alice_listaddresses(args=['age_fmt=date'],expect=rf'{rtAmts[1]}\s+'+pat_date)
|
||||
return self.alice_listaddresses(
|
||||
args = ['age_fmt=date'],
|
||||
expect = (rtAmts[1],pat_date) )
|
||||
|
||||
def alice_listaddresses_date_time(self):
|
||||
return self.alice_listaddresses(
|
||||
args=['age_fmt=date_time'],
|
||||
expect=rf'{rtAmts[1]}\s+'+pat_date_time)
|
||||
args = ['age_fmt=date_time'],
|
||||
expect = (rtAmts[1],pat_date_time) )
|
||||
|
||||
def alice_twview(self,args=[],expect=None):
|
||||
expect = expect or rf'{rtAmts[0]}\b'
|
||||
def alice_twview(self,args,expect):
|
||||
t = self.spawn('mmgen-tool',['--alice','twview'] + args)
|
||||
t.expect(expect,regex=True)
|
||||
expect_str = r'\D{}\D.*\b{}'.format(*expect)
|
||||
t.expect(expect_str,regex=True)
|
||||
t.read()
|
||||
return t
|
||||
|
||||
def alice_twview1(self):
|
||||
return self.alice_twview(
|
||||
args = [],
|
||||
expect = (rtAmts[0],r'\d+') )
|
||||
|
||||
def alice_twview_days(self):
|
||||
return self.alice_twview(args=['age_fmt=days'],expect=rf'{rtAmts[0]}\s+\d+\b')
|
||||
return self.alice_twview(
|
||||
args = ['age_fmt=days'],
|
||||
expect = (rtAmts[0],r'\d+') )
|
||||
|
||||
def alice_twview_date(self):
|
||||
return self.alice_twview(args=['age_fmt=date'],expect=rf'{rtAmts[0]}\s+'+pat_date)
|
||||
return self.alice_twview(
|
||||
args = ['age_fmt=date'],
|
||||
expect = (rtAmts[0],pat_date) )
|
||||
|
||||
def alice_twview_date_time(self):
|
||||
return self.alice_twview(args=['age_fmt=date_time'],expect=rf'{rtAmts[0]}\s+'+pat_date_time)
|
||||
return self.alice_twview(
|
||||
args = ['age_fmt=date_time'],
|
||||
expect = (rtAmts[0],pat_date_time) )
|
||||
|
||||
def alice_txcreate_info(self,args=[]):
|
||||
t = self.spawn('mmgen-txcreate',['--alice','-Bi'])
|
||||
for e,s in (
|
||||
(rf'{rtAmts[0]}\s+\d+\b','D'),
|
||||
(rf'{rtAmts[0]}\s+\d+\b','D'),
|
||||
(rf'{rtAmts[0]}\s+\d+\b','D'),
|
||||
(rf'{rtAmts[0]}\s+'+pat_date,'w'),
|
||||
(rf'{rtAmts[0]}\s+\d+\s+\d+\s+'+pat_date_time,'q'),
|
||||
for d,s in (
|
||||
( '\d+', 'D'),
|
||||
( '\d+', 'D'),
|
||||
( '\d+', 'D'),
|
||||
( pat_date, 'w'),
|
||||
( '\d+\s+\d+\s+'+pat_date_time,'q'),
|
||||
):
|
||||
t.expect(e,s,regex=True)
|
||||
t.expect(
|
||||
r'\D{}\D.*\b{}\b'.format(rtAmts[0],d),
|
||||
s,
|
||||
regex=True )
|
||||
t.read()
|
||||
return t
|
||||
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ class TestSuiteShared(object):
|
|||
txid = ''
|
||||
t.expect('BOGUS transaction NOT sent')
|
||||
else:
|
||||
txid = t.expect_getend('Transaction sent: ')
|
||||
txid = strip_ansi_escapes(t.expect_getend('Transaction sent: '))
|
||||
assert len(txid) == 64,"'{}': Incorrect txid length!".format(txid)
|
||||
|
||||
t.written_to_file(file_desc)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue