unit_tests.py rpc: test all configured daemon_ids

This commit is contained in:
The MMGen Project 2021-08-07 13:54:57 +00:00
commit d00dc7987b
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2

View file

@ -33,34 +33,30 @@ def do_msg(rpc):
class init_test:
async def btc(proto,backend):
rpc = await rpc_init(proto,backend)
async def btc(proto,backend,daemon):
rpc = await rpc_init(proto,backend,daemon)
do_msg(rpc)
bh = (await rpc.call('getblockchaininfo',timeout=300))['bestblockhash']
await rpc.gathered_call('getblock',((bh,),(bh,1)),timeout=300)
await rpc.gathered_call(None,(('getblock',(bh,)),('getblock',(bh,1))),timeout=300)
async def bch(proto,backend):
rpc = await rpc_init(proto,backend)
async def bch(proto,backend,daemon):
rpc = await rpc_init(proto,backend,daemon)
do_msg(rpc)
ltc = bch
async def eth(proto,backend):
rpc = await rpc_init(proto,backend)
async def eth(proto,backend,daemon):
rpc = await rpc_init(proto,backend,daemon)
do_msg(rpc)
await rpc.call('eth_blockNumber',timeout=300)
etc = eth
def run_test(network_ids,test_cf_auth): # TODO: run all available networks simultaneously
def run_test(network_ids,test_cf_auth=False,daemon_ids=None):
for network_id in network_ids:
proto = init_proto(network_id=network_id)
d = CoinDaemon(proto=proto,test_suite=True)
def do(d):
if not opt.no_daemon_stop:
d.stop()
@ -70,16 +66,25 @@ def run_test(network_ids,test_cf_auth): # TODO: run all available networks simul
d.start()
for backend in g.autoset_opts['rpc_backend'].choices:
run_session(getattr(init_test,proto.coin.lower())(proto,backend),backend=backend)
test = getattr(init_test,d.proto.coin.lower())
run_session(test(d.proto,backend,d),backend=backend)
if not opt.no_daemon_stop:
d.stop()
if test_cf_auth and g.platform != 'win':
cfg_file_auth_test(proto,d)
cfg_file_auth_test(d.proto,d)
qmsg('')
for network_id in network_ids:
proto = init_proto(network_id=network_id)
daemon_ids = (lambda x:
set(daemon_ids) & set(x) if daemon_ids else x
)(CoinDaemon.coins[proto.coin].daemon_ids)
for daemon_id in daemon_ids:
do( CoinDaemon(proto=proto,test_suite=True,daemon_id=daemon_id) )
return True
class unit_tests:
@ -96,10 +101,11 @@ class unit_tests:
return run_test(['bch','bch_tn'],test_cf_auth=True)
def eth(self,name,ut):
return run_test(['eth'],test_cf_auth=False)
run_test(['eth','eth_tn','eth_rt'],daemon_ids=['openethereum','erigon'])
return run_test(['eth_tn','eth_rt'],daemon_ids=['geth']) # mainnet returns EIP-155 error on empty blockchain
def etc(self,name,ut):
return run_test(['etc'],test_cf_auth=False)
return run_test(['etc'])
def xmrwallet(self,name,ut):