test: Wait for rpc.

This commit is contained in:
tecnovert 2019-07-17 18:24:54 +02:00
parent e242f50b2b
commit 6c0d82abe6
No known key found for this signature in database
GPG key ID: 13F13651C9CF0D6B
2 changed files with 17 additions and 7 deletions

View file

@ -573,17 +573,14 @@ class BasicSwap():
for i in range(21):
if not self.is_running:
return
if i == 20:
self.log.error('Can\'t connect to daemon RPC, exiting.')
self.stopRunning(1) # systemd will try restart if fail_code != 0
return
try:
self.callrpc('getwalletinfo', [], self.wallet)
break
return
except Exception as ex:
traceback.print_exc()
self.log.warning('Can\'t connect to daemon RPC, trying again in %d second/s.', (1 + i))
logging.warning('Can\'t connect to daemon RPC: %s. Trying again in %d second/s.', str(ex), (1 + i))
time.sleep(1 + i)
self.log.error('Can\'t connect to daemon RPC, exiting.')
self.stopRunning(1) # systemd will try restart if fail_code != 0
def loadFromDB(self):
self.log.info('Loading data from db')

View file

@ -207,6 +207,17 @@ def run_loop(self):
btcRpc('generatetoaddress 1 {}'.format(self.btc_addr))
def waitForRPC(rpc_func, wallet=None):
for i in range(5):
try:
rpc_func('getwalletinfo')
return
except Exception as ex:
logging.warning('Can\'t connect to daemon RPC: %s. Trying again in %d second/s.', str(ex), (1 + i))
time.sleep(1 + i)
raise ValueError('waitForRPC failed')
class Test(unittest.TestCase):
@classmethod
@ -253,6 +264,7 @@ class Test(unittest.TestCase):
cls.swap_clients[1].callrpc('getnewextaddress', ['lblExtTest'])
cls.swap_clients[1].callrpc('rescanblockchain')
waitForRPC(ltcRpc)
num_blocks = 500
logging.info('Mining %d litecoin blocks', num_blocks)
cls.ltc_addr = ltcRpc('getnewaddress mining_addr legacy')
@ -262,6 +274,7 @@ class Test(unittest.TestCase):
assert(ro['bip9_softforks']['csv']['status'] == 'active')
assert(ro['bip9_softforks']['segwit']['status'] == 'active')
waitForRPC(btcRpc)
cls.btc_addr = btcRpc('getnewaddress mining_addr bech32')
logging.info('Mining %d bitcoin blocks to %s', num_blocks, cls.btc_addr)
btcRpc('generatetoaddress {} {}'.format(num_blocks, cls.btc_addr))