From 310f6f59c56028e0b44aa8ee2c581dd676af6f3c Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Mon, 23 May 2022 16:28:56 +0000 Subject: [PATCH] minor changes and fixes --- mmgen/obj.py | 10 ++++++++-- mmgen/objmethods.py | 8 ++++---- test/test_py_d/ts_autosign.py | 2 +- test/test_py_d/ts_regtest.py | 23 ++++++++++++----------- 4 files changed, 25 insertions(+), 18 deletions(-) diff --git a/mmgen/obj.py b/mmgen/obj.py index 37f03c79..6dffaacc 100755 --- a/mmgen/obj.py +++ b/mmgen/obj.py @@ -281,8 +281,8 @@ class Int(int,Hilite,InitErrors): cls.method_not_implemented() @classmethod - def colorize(cls,n,color=True): - return super().colorize(repr(n),color=color) + def colorize(cls,n,**kwargs): + return super().colorize(repr(n),**kwargs) class MMGenIdx(Int): min_val = 1 @@ -316,6 +316,12 @@ class HexStr(str,Hilite,InitErrors): except Exception as e: return cls.init_fail(e,s) + def truncate(self,width,color=True,color_override=''): + return self.colorize( + self if width == None or width >= self.width else self[:width-2] + '..', + color = color, + color_override = color_override ) + class CoinTxID(HexStr): color,width,hexcase = ('purple',64,'lower') diff --git a/mmgen/objmethods.py b/mmgen/objmethods.py index e028ac2c..a5ef4f0f 100755 --- a/mmgen/objmethods.py +++ b/mmgen/objmethods.py @@ -46,7 +46,7 @@ class Hilite: # 'width' is screen width (greater than len(s) for CJK strings) # 'append_chars' and 'encl' must consist of single-width chars only def fmtc(cls,s,width=None,color=False,encl='',trunc_ok=None, - center=False,nullrepl='',append_chars='',append_color=False): + center=False,nullrepl='',append_chars='',append_color=False,color_override=''): s_wide_count = len([1 for ch in s if unicodedata.east_asian_width(ch) in ('F','W')]) if encl: a,b = list(encl) @@ -77,7 +77,7 @@ class Hilite: append_chars.ljust(width-len(s)-s_wide_count), color_override = append_color )) else: - return cls.colorize(s.ljust(width-s_wide_count),color=color) + return cls.colorize(s.ljust(width-s_wide_count),color=color,color_override=color_override) @classmethod def colorize(cls,s,color=True,color_override=''): @@ -88,11 +88,11 @@ class Hilite: return self.fmtc(self,*args,**kwargs) @classmethod - def hlc(cls,s,color=True,encl=''): + def hlc(cls,s,color=True,encl='',color_override=''): if encl: assert isinstance(encl,str) and len(encl) == 2, "'encl' must be 2-character str" s = encl[0] + s + encl[1] - return cls.colorize(s,color=color) + return cls.colorize(s,color=color,color_override=color_override) def hl(self,*args,**kwargs): assert args == () # forbid invocation w/o keywords diff --git a/test/test_py_d/ts_autosign.py b/test/test_py_d/ts_autosign.py index a1b5c48d..90b9b158 100755 --- a/test/test_py_d/ts_autosign.py +++ b/test/test_py_d/ts_autosign.py @@ -126,7 +126,7 @@ class TestSuiteAutosignBase(TestSuiteBase): self.bad_msg_count = 0 def __del__(self): - if g.platform == 'win': + if g.platform == 'win' or self.tr == None: return if self.simulate or not self.live: LEDControl.delete_dummy_control_files() diff --git a/test/test_py_d/ts_regtest.py b/test/test_py_d/ts_regtest.py index 5aa81621..975c0bba 100755 --- a/test/test_py_d/ts_regtest.py +++ b/test/test_py_d/ts_regtest.py @@ -48,13 +48,13 @@ rt_data = { 'rtBals': { 'btc': ('499.9999488','399.9998282','399.9998147','399.9996877', '52.99980410','946.99933647','999.99914057','52.9999', - '946.99933647'), + '946.99933647','0.4169328'), 'bch': ('499.9999484','399.9999194','399.9998972','399.9997692', '46.78890380','953.20966920','999.99857300','46.789', - '953.2096692'), + '953.2096692','0.4169328'), 'ltc': ('5499.99744','5399.994425','5399.993885','5399.987535', '52.98520500','10946.93753500','10999.92274000','52.99', - '10946.937535'), + '10946.937535','0.41364'), }, 'rtBals_gb': { 'btc': { @@ -590,8 +590,7 @@ 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=(sid+':L:5',amt),sort='twmmid') + return self.user_twview('bob',chk=(sid+':L:5',rtBals[9]),sort='twmmid') def bob_getbalance(self,bals,confs=1): for i in (0,1,2): @@ -839,25 +838,27 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared): self.write_to_tmpfile('non-mmgen.addrs','\n'.join([a[1] for a in pairs])+'\n') return self.user_txdo('bob',rtFee[4],[pairs[0][1]],'3') - def user_import(self,user,args): + def user_import(self,user,args,nAddr): t = self.spawn('mmgen-addrimport',['--'+user]+args) if g.debug: t.expect("Type uppercase 'YES' to confirm: ",'YES\n') - t.expect('Importing') - t.expect('OK') + t.expect(f'Importing {nAddr} address') + if '--rescan' in args: + for i in range(nAddr): + t.expect('OK') return t def bob_import_addr(self): addr = self.read_from_tmpfile('non-mmgen.addrs').split()[0] - return self.user_import('bob',['--quiet','--address='+addr]) + return self.user_import('bob',['--quiet','--address='+addr],nAddr=1) def bob_import_list(self): addrfile = joinpath(self.tmpdir,'non-mmgen.addrs') - return self.user_import('bob',['--quiet','--addrlist',addrfile]) + return self.user_import('bob',['--quiet','--addrlist',addrfile],nAddr=5) def bob_import_list_rescan(self): addrfile = joinpath(self.tmpdir,'non-mmgen.addrs') - return self.user_import('bob',['--quiet','--rescan','--addrlist',addrfile]) + return self.user_import('bob',['--quiet','--rescan','--addrlist',addrfile],nAddr=5) def bob_split2(self): addrs = self.read_from_tmpfile('non-mmgen.addrs').split()