Browse Source

fix aiohttp regression, add 'rpc_backends' test to test.py

The MMGen Project 4 years ago
parent
commit
4d26511608
3 changed files with 43 additions and 24 deletions
  1. 0 1
      mmgen/util.py
  2. 2 0
      test/test.py
  3. 41 23
      test/test_py_d/ts_misc.py

+ 0 - 1
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

+ 2 - 0
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}),

+ 41 - 23
test/test_py_d/ts_misc.py

@@ -26,7 +26,43 @@ from .common import *
 from .ts_base import *
 from .ts_main import TestSuiteMain
 
-class TestSuiteHelp(TestSuiteBase):
+class TestSuiteMisc(TestSuiteBase):
+	'miscellaneous tests (RPC backends)'
+	networks = ('btc',)
+	tmpdir_nums = [99]
+	passthru_opts = ('daemon_data_dir','rpc_port')
+	cmd_group = (
+		('rpc_backends', 'RPC backends'),
+	)
+
+	def _run_cmd(   self, cmd_name,
+					cmd_args = [],
+					no_msg = False,
+					extra_desc = '',
+					cmd_dir = 'cmds',
+					no_output = False):
+		t = self.spawn( cmd_name,
+						args       = cmd_args,
+						no_msg     = no_msg,
+						extra_desc = extra_desc,
+						cmd_dir    = cmd_dir,
+						no_output  = no_output)
+		t.read()
+		ret = t.p.wait()
+		if ret == 0:
+			msg('OK')
+		else:
+			rdie(1,"\n'{}' returned {}".format(self.test_name,ret))
+		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 = []
@@ -44,7 +80,10 @@ class TestSuiteHelp(TestSuiteBase):
 					'addrgen','keygen','passgen',
 					'seedsplit','seedjoin',
 					'txcreate','txsign','txsend','txdo','txbump',
-					'addrimport','regtest','autosign')):
+					'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
@@ -60,27 +99,6 @@ class TestSuiteHelp(TestSuiteBase):
 					'addrgen','keygen','passgen',
 					'txsign','txdo','txbump'))
 
-	def _run_cmd(   self, cmd_name,
-					cmd_args = [],
-					no_msg = False,
-					extra_desc = '',
-					cmd_dir = 'cmds',
-					no_output = False):
-		t = self.spawn( cmd_name,
-						args       = cmd_args,
-						no_msg     = no_msg,
-						extra_desc = extra_desc,
-						cmd_dir    = cmd_dir,
-						no_output  = no_output)
-		t.read()
-		ret = t.p.wait()
-		if ret == 0:
-			msg('OK')
-		else:
-			rdie(1,"\n'{}' returned {}".format(self.test_name,ret))
-		t.skip_ok = True
-		return t
-
 	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')")