From 5ebd445957239825949bf309575d2ad612145c5c Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Thu, 8 Dec 2022 15:14:01 +0000 Subject: [PATCH] tw.unspent: addr grouping bugfix; add twview grouping tests --- mmgen/data/version | 2 +- mmgen/tw/unspent.py | 2 +- test/test_py_d/ts_regtest.py | 37 +++++++++++++++++++++++++++++++++--- 3 files changed, 36 insertions(+), 5 deletions(-) diff --git a/mmgen/data/version b/mmgen/data/version index 81ee5703..f8e317d4 100644 --- a/mmgen/data/version +++ b/mmgen/data/version @@ -1 +1 @@ -13.3.dev27 +13.3.dev28 diff --git a/mmgen/tw/unspent.py b/mmgen/tw/unspent.py index fcee59cf..4818808e 100755 --- a/mmgen/tw/unspent.py +++ b/mmgen/tw/unspent.py @@ -189,7 +189,7 @@ class TwUnspentOutputs(TwView): v = ' ' + d.vout.fmt( width=cw.vout-1, color=color ) if cw.vout else None, a = d.addr.fmtc( '|' + '.'*(cw.addr-1), width=cw.addr, color=color ) if d.skip == 'addr' else d.addr.fmt( width=cw.addr, color=color ), - m = (d.twmmid.fmtc( '.'*cw.mmid, color=color ) if d.skip == 'addr' + m = (d.twmmid.fmtc( '.'*cw.mmid, width=cw.mmid, color=color ) if d.skip == 'addr' else d.twmmid.fmt( width=cw.mmid, color=color )) if cw.mmid else None, c = d.comment.fmt2( width=cw.comment, color=color, nullrepl='-' ) if cw.comment else None, A = d.amt.fmt( color=color, iwidth=cw.iwidth, prec=self.disp_prec ), diff --git a/test/test_py_d/ts_regtest.py b/test/test_py_d/ts_regtest.py index e6824efc..c3a2dcd2 100755 --- a/test/test_py_d/ts_regtest.py +++ b/test/test_py_d/ts_regtest.py @@ -365,6 +365,10 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared): ('alice_twview_date_time', 'twview (age_fmt=date_time)'), ('alice_txcreate_info', 'txcreate -i'), ('alice_txcreate_info_term', 'txcreate -i (pexpect_spawn)'), + ('bob_send_to_alice_2addr', 'sending a TX to 2 addresses in Alice’s wallet'), + ('bob_send_to_alice_reuse', 'sending a TX to a used address in Alice’s wallet'), + ('generate', 'mining a block'), + ('alice_twview_grouped', 'twview (testing ‘grouped’ option for TX and address)'), ), 'auto_chg': ( 'automatic change address selection', @@ -1083,9 +1087,10 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared): t.expect('updated successfully') return t - def _usr_rescan_blockchain(self,user,add_args,expect): + def _usr_rescan_blockchain(self,user,add_args,expect=None): t = self.spawn('mmgen-tool',[f'--{user}','rescan_blockchain'] + add_args) - t.expect(f'Scanning blocks {expect}') + if expect: + t.expect(f'Scanning blocks {expect}') t.expect('Done') return t @@ -1502,6 +1507,32 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared): return 'skip' return self.alice_txcreate_info(pexpect_spawn=True) + # send one TX to 2 addrs in Alice’s wallet - required for alice_twview_grouped() + def bob_send_to_alice_2addr(self): + outputs_cl = self._create_tx_outputs('alice',[('C',1,',0.02'),('C',2,',0.2')]) + outputs_cl += [self._user_sid('bob')+':C:5'] + return self.user_txdo('bob','25s',outputs_cl,'1') + + # send to a used addr in Alice’s wallet - required for alice_twview_grouped() + def bob_send_to_alice_reuse(self): + outputs_cl = self._create_tx_outputs('alice',[('C',1,',0.2')]) + outputs_cl += [self._user_sid('bob')+':C:5'] + return self.user_txdo('bob','25s',outputs_cl,'1') + + def alice_twview_grouped(self): + t = self.spawn('mmgen-tool',['--alice','twview','interactive=1']) + prompt = 'abel:\b' + for s,dots in ( + ('o',False), + ('M',False), + ('t',True), + ('q',True), + ): + if dots: + t.expect('........') + t.expect(prompt,s) + return t + def bob_msgcreate(self): sid1 = self._user_sid('bob') sid2 = self._get_user_subsid('bob','29L') @@ -1691,7 +1722,7 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared): expect_str2 = f'Found {u} unspent outputs in {b} blocks' ) def carol_rescan_blockchain(self): - return self._usr_rescan_blockchain('carol',[],'400-407') + return self._usr_rescan_blockchain('carol',[]) def carol_auto_chg1(self): return self._usr_auto_chg( 'carol', self._user_sid('bob') + ':C' )