From 4d265116086253e56bc91ec897379f40439b13fc Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Tue, 2 Mar 2021 16:43:00 +0000 Subject: [PATCH] fix aiohttp regression, add 'rpc_backends' test to test.py --- mmgen/util.py | 1 - test/test.py | 2 + test/test_py_d/ts_misc.py | 80 ++++++++++++++++++++++++--------------- 3 files changed, 51 insertions(+), 32 deletions(-) diff --git a/mmgen/util.py b/mmgen/util.py index 79d12fe8..8aceaf9a 100755 --- a/mmgen/util.py +++ b/mmgen/util.py @@ -885,7 +885,6 @@ def run_session(callback,backend=None): connector = aiohttp.TCPConnector(limit_per_host=g.aiohttp_rpc_queue_len), ) as g.session: ret = await callback - g.session = None return ret else: return await callback diff --git a/test/test.py b/test/test.py index 52e8c64f..4cb3f23d 100755 --- a/test/test.py +++ b/test/test.py @@ -362,6 +362,7 @@ cfgs = { # addr_idx_lists (except 31,32,33,34) must contain exactly 8 addresses '34': {}, '40': {}, '41': {}, + '99': {}, # dummy } def fixup_cfgs(): @@ -490,6 +491,7 @@ def set_restore_term_at_exit(): class CmdGroupMgr(object): cmd_groups_dfl = { + 'misc': ('TestSuiteMisc',{}), 'opts': ('TestSuiteOpts',{'full_data':True}), 'cfg': ('TestSuiteCfg',{'full_data':True}), 'helpscreens': ('TestSuiteHelp',{'modname':'misc','full_data':True}), diff --git a/test/test_py_d/ts_misc.py b/test/test_py_d/ts_misc.py index d0f6a726..679f0263 100755 --- a/test/test_py_d/ts_misc.py +++ b/test/test_py_d/ts_misc.py @@ -26,39 +26,14 @@ from .common import * from .ts_base import * from .ts_main import TestSuiteMain -class TestSuiteHelp(TestSuiteBase): - 'help, info and usage screens' - networks = ('btc','ltc','bch','eth') - tmpdir_nums = [] - passthru_opts = ('daemon_data_dir','rpc_port','coin','testnet') +class TestSuiteMisc(TestSuiteBase): + 'miscellaneous tests (RPC backends)' + networks = ('btc',) + tmpdir_nums = [99] + passthru_opts = ('daemon_data_dir','rpc_port') cmd_group = ( - ('helpscreens', (1,'help screens', [])), - ('longhelpscreens', (1,'help screens (--longhelp)',[])), - ('opt_show_hash_presets', (1,'info screen (--show-hash-presets)',[])), - ('tool_help', (1,"'mmgen-tool' usage screen",[])), - ('test_help', (1,"'test.py' help screens",[])), + ('rpc_backends', 'RPC backends'), ) - def helpscreens(self, - arg = '--help', - scripts = ( 'walletgen','walletconv','walletchk','passchg','subwalletgen', - 'addrgen','keygen','passgen', - 'seedsplit','seedjoin', - 'txcreate','txsign','txsend','txdo','txbump', - 'addrimport','regtest','autosign')): - for s in scripts: - t = self._run_cmd('mmgen-'+s,[arg],extra_desc='(mmgen-{})'.format(s),no_output=True) - return t - - def longhelpscreens(self): - return self.helpscreens(arg='--longhelp') - - def opt_show_hash_presets(self): - return self.helpscreens( - arg = '--show-hash-presets', - scripts = ( - 'walletgen','walletconv','walletchk','passchg','subwalletgen', - 'addrgen','keygen','passgen', - 'txsign','txdo','txbump')) def _run_cmd( self, cmd_name, cmd_args = [], @@ -81,6 +56,49 @@ class TestSuiteHelp(TestSuiteBase): t.skip_ok = True return t + def rpc_backends(self): + backends = g.autoset_opts['rpc_backend'][1] + for backend in backends: + t = self._run_cmd('mmgen-tool',[f'--rpc-backend={backend}','daemon_version'],extra_desc=f' ({backend})') + return t + +class TestSuiteHelp(TestSuiteMisc,TestSuiteBase): + 'help, info and usage screens' + networks = ('btc','ltc','bch','eth') + tmpdir_nums = [] + passthru_opts = ('daemon_data_dir','rpc_port','coin','testnet') + cmd_group = ( + ('helpscreens', (1,'help screens', [])), + ('longhelpscreens', (1,'help screens (--longhelp)',[])), + ('opt_show_hash_presets', (1,'info screen (--show-hash-presets)',[])), + ('tool_help', (1,"'mmgen-tool' usage screen",[])), + ('test_help', (1,"'test.py' help screens",[])), + ) + def helpscreens(self, + arg = '--help', + scripts = ( 'walletgen','walletconv','walletchk','passchg','subwalletgen', + 'addrgen','keygen','passgen', + 'seedsplit','seedjoin', + 'txcreate','txsign','txsend','txdo','txbump', + 'addrimport','autosign') + ): + if self.test_name == 'helpscreens' and self.proto.base_coin != 'ETH': + scripts += ('regtest',) + for s in scripts: + t = self._run_cmd('mmgen-'+s,[arg],extra_desc='(mmgen-{})'.format(s),no_output=True) + return t + + def longhelpscreens(self): + return self.helpscreens(arg='--longhelp') + + def opt_show_hash_presets(self): + return self.helpscreens( + arg = '--show-hash-presets', + scripts = ( + 'walletgen','walletconv','walletchk','passchg','subwalletgen', + 'addrgen','keygen','passgen', + 'txsign','txdo','txbump')) + def tool_help(self): self._run_cmd('mmgen-tool',['--help'],extra_desc="('mmgen-tool --help')") self._run_cmd('mmgen-tool',['--longhelp'],extra_desc="('mmgen-tool --longhelp')")