From 649eb141a8f58088f173d0ca5ef09276dfe7ce6e Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Wed, 6 Mar 2024 11:05:21 +0000 Subject: [PATCH] cmdtest regtest: add empty wallet, no balance tests --- mmgen/proto/btc/tw/rpc.py | 2 +- mmgen/tw/view.py | 2 +- test/cmdtest_py_d/ct_regtest.py | 30 +++++++++++++++++++++++++----- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/mmgen/proto/btc/tw/rpc.py b/mmgen/proto/btc/tw/rpc.py index e8fabe76..65945bf6 100755 --- a/mmgen/proto/btc/tw/rpc.py +++ b/mmgen/proto/btc/tw/rpc.py @@ -51,7 +51,7 @@ class BitcoinTwRPC(TwRPC): acct_labels = [get_tw_label(self.proto,a) for a in await get_acct_list()] if not acct_labels: - return None + return [] check_dup_mmid(acct_labels) diff --git a/mmgen/tw/view.py b/mmgen/tw/view.py index 5d71fb62..bc3f9663 100755 --- a/mmgen/tw/view.py +++ b/mmgen/tw/view.py @@ -262,7 +262,7 @@ class TwView(MMGenObject,metaclass=AsyncInit): rpc_data = await self.get_rpc_data() if not rpc_data: - die(0,fmt(self.no_rpcdata_errmsg).strip()) + die(1,fmt(self.no_rpcdata_errmsg).strip()) lbl_id = ('account','label')['label_api' in self.rpc.caps] diff --git a/test/cmdtest_py_d/ct_regtest.py b/test/cmdtest_py_d/ct_regtest.py index 7f4eb594..d9d697e0 100755 --- a/test/cmdtest_py_d/ct_regtest.py +++ b/test/cmdtest_py_d/ct_regtest.py @@ -202,9 +202,13 @@ class CmdTestRegtest(CmdTestBase,CmdTestShared): ), 'init_bob': ( 'creating Bob’s MMGen wallet and tracking wallet', - ('walletgen_bob', 'wallet generation (Bob)'), - ('addrgen_bob', 'address generation (Bob)'), - ('addrimport_bob', "importing Bob's addresses"), + ('bob_twview_noaddrs', 'viewing Bob’s unspent outputs (error, no addrs)'), + ('bob_listaddrs_noaddrs', 'viewing Bob’s addresses (error, no addrs)'), + ('walletgen_bob', 'wallet generation (Bob)'), + ('addrgen_bob', 'address generation (Bob)'), + ('addrimport_bob', "importing Bob's addresses"), + ('bob_twview_nobal', 'viewing Bob’s unspent outputs (error, no balance)'), + ('bob_listaddrs_nobal', 'viewing Bob’s addresses (OK, no balance)'), ), 'init_alice': ( 'creating Alice’s MMGen wallet and tracking wallet', @@ -699,12 +703,28 @@ class CmdTestRegtest(CmdTestBase,CmdTestShared): def fund_alice(self): return self.fund_wallet('alice',('L','S')[self.proto.cap('segwit')],rtFundAmt) - def user_twview(self,user,chk,sort='age'): - t = self.spawn('mmgen-tool',['--'+user,'twview','sort='+sort]) + def user_twview(self, user, chk=None, expect=None, cmdline=['twview'], sort='age', exit_val=None): + t = self.spawn('mmgen-tool',[f'--{user}'] + cmdline + ['sort='+sort]) if chk: t.expect(r'{}\b.*\D{}\b'.format(*chk),regex=True) + if expect: + t.expect(expect) + if exit_val: + t.req_exit_val = exit_val return t + def bob_twview_noaddrs(self): + return self.user_twview('bob', expect='No spendable', exit_val=1) + + def bob_listaddrs_noaddrs(self): + return self.user_twview('bob', cmdline=['listaddresses'], expect='No addresses', exit_val=1) + + def bob_twview_nobal(self): + return self.user_twview('bob', expect='No spendable', exit_val=1) + + def bob_listaddrs_nobal(self): + return self.user_twview('bob', cmdline=['listaddresses'], expect='TOTAL:') + def bob_twview1(self): return self.user_twview('bob', chk = ('1',rtAmts[0]) )