Browse Source

minor changes and fixes

The MMGen Project 2 years ago
parent
commit
310f6f59c5
4 changed files with 25 additions and 18 deletions
  1. 8 2
      mmgen/obj.py
  2. 4 4
      mmgen/objmethods.py
  3. 1 1
      test/test_py_d/ts_autosign.py
  4. 12 11
      test/test_py_d/ts_regtest.py

+ 8 - 2
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')
 

+ 4 - 4
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

+ 1 - 1
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()

+ 12 - 11
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()