Reload xmr swaps in-progress.

This commit is contained in:
tecnovert
2020-12-04 23:30:20 +02:00
parent e7afd5e67d
commit 28d5848f3a
11 changed files with 152 additions and 145 deletions

View File

@@ -8,7 +8,7 @@
"""
export TEST_RELOAD_PATH=/tmp/test_basicswap
mkdir -p ${TEST_RELOAD_PATH}/bin/{particl,bitcoin}
cp ~/tmp/particl-0.19.1.1-x86_64-linux-gnu.tar.gz ${TEST_RELOAD_PATH}/bin/particl
cp ~/tmp/particl-0.19.1.2-x86_64-linux-gnu.tar.gz ${TEST_RELOAD_PATH}/bin/particl
cp ~/tmp/bitcoin-0.20.1-x86_64-linux-gnu.tar.gz ${TEST_RELOAD_PATH}/bin/bitcoin
export PYTHONPATH=$(pwd)
python tests/basicswap/test_reload.py

View File

@@ -30,12 +30,8 @@ from urllib import parse
from urllib.request import urlopen
from unittest.mock import patch
from basicswap.rpc import (
callrpc_cli,
)
from basicswap.util import (
dumpj
from basicswap.rpc_xmr import (
callrpc_xmr_na,
)
from tests.basicswap.mnemonics import mnemonics
@@ -47,9 +43,8 @@ test_path = os.path.expanduser(os.getenv('TEST_RELOAD_PATH', '~/test_basicswap1'
PARTICL_PORT_BASE = int(os.getenv('PARTICL_PORT_BASE', '11938'))
XMR_BASE_P2P_PORT = 17792
XMR_BASE_RPC_PORT = 21792
XMR_BASE_ZMQ_PORT = 22792
XMR_BASE_WALLET_RPC_PORT = 23792
XMR_BASE_RPC_PORT = 29798
XMR_BASE_WALLET_RPC_PORT = 29998
stop_test = False
@@ -97,10 +92,8 @@ def waitForNumSwapping(port, bids):
def updateThread(xmr_addr):
#btc_addr = btcRpc(0, 'getnewaddress mining_addr bech32')
while not stop_test:
#btcRpc(0, 'generatetoaddress {} {}'.format(1, btc_addr))
callrpc_xmr_na(XMR_BASE_RPC_PORT + 1, 'generateblocks', {'wallet_address': xmr_addr, 'amount_of_blocks': 1})
time.sleep(5)
@@ -165,27 +158,17 @@ class Test(unittest.TestCase):
processes[-1].start()
try:
waitForServer(12700)
waitForServer(12701)
wallets = json.loads(urlopen('http://localhost:12701/json/wallets').read())
print('[rm] wallets', dumpj(wallets))
xmr_addr1 = wallets['6']['deposit_address']
num_blocks = 500
raise ValueError('TODO')
'''
btc_addr = btcRpc(1, 'getnewaddress mining_addr bech32')
logging.info('Mining %d Bitcoin blocks to %s', num_blocks, btc_addr)
btcRpc(1, 'generatetoaddress {} {}'.format(num_blocks, btc_addr))
for i in range(20):
blocks = btcRpc(0, 'getblockchaininfo')['blocks']
if blocks >= 500:
break
assert(blocks >= 500)
'''
logging.info('Mining %d Monero blocks.', num_blocks)
callrpc_xmr_na(XMR_BASE_RPC_PORT + 1, 'generateblocks', {'wallet_address': xmr_addr1, 'amount_of_blocks': num_blocks})
rv = callrpc_xmr_na(XMR_BASE_RPC_PORT + 1, 'get_block_count')
logging.info('XMR blocks: %d', rv['count'])
data = parse.urlencode({
'addr_from': '-1',
@@ -199,8 +182,7 @@ class Test(unittest.TestCase):
summary = json.loads(urlopen('http://localhost:12700/json').read())
assert(summary['num_sent_offers'] == 1)
logger.info('Waiting for offer:')
logger.info('Waiting for offer')
waitForNumOffers(12701, 1)
offers = json.loads(urlopen('http://localhost:12701/json/offers').read())
@@ -214,8 +196,12 @@ class Test(unittest.TestCase):
waitForNumBids(12700, 1)
bids = json.loads(urlopen('http://localhost:12700/json/bids').read())
bid = bids[0]
for i in range(10):
bids = json.loads(urlopen('http://localhost:12700/json/bids').read())
bid = bids[0]
if bid['bid_state'] == 'Received':
break
time.sleep(1)
data = parse.urlencode({
'accept': True
@@ -225,7 +211,7 @@ class Test(unittest.TestCase):
waitForNumSwapping(12701, 1)
logger.info('Restarting client:')
logger.info('Restarting client')
c1 = processes[1]
c1.terminate()
c1.join()
@@ -236,10 +222,10 @@ class Test(unittest.TestCase):
rv = json.loads(urlopen('http://localhost:12701/json').read())
assert(rv['num_swapping'] == 1)
update_thread = threading.Thread(target=updateThread, args=(xmr_addr,))
update_thread = threading.Thread(target=updateThread, args=(xmr_addr1,))
update_thread.start()
logger.info('Completing swap:')
logger.info('Completing swap')
for i in range(240):
time.sleep(5)
@@ -251,6 +237,7 @@ class Test(unittest.TestCase):
except Exception:
traceback.print_exc()
logger.info('Stopping test')
stop_test = True
if update_thread:
update_thread.join()

View File

@@ -25,19 +25,10 @@ import shutil
import logging
import unittest
import traceback
import threading
import multiprocessing
from urllib import parse
from urllib.request import urlopen
from unittest.mock import patch
from basicswap.rpc import (
callrpc_cli,
)
from basicswap.util import (
dumpj
)
from tests.basicswap.mnemonics import mnemonics
import basicswap.config as cfg
@@ -179,16 +170,14 @@ class Test(unittest.TestCase):
waitForServer(12700)
wallets_0 = json.loads(urlopen('http://localhost:12700/json/wallets').read())
print('[rm] wallets_0', dumpj(wallets_0))
assert(wallets_0['1']['expected_seed'] == True)
assert(wallets_0['6']['expected_seed'] == True)
assert(wallets_0['1']['expected_seed'] is True)
assert(wallets_0['6']['expected_seed'] is True)
waitForServer(12701)
wallets_1 = json.loads(urlopen('http://localhost:12701/json/wallets').read())
print('[rm] wallets_1', dumpj(wallets_1))
assert(wallets_0['1']['expected_seed'] == True)
assert(wallets_1['6']['expected_seed'] == True)
assert(wallets_0['1']['expected_seed'] is True)
assert(wallets_1['6']['expected_seed'] is True)
# TODO: Check other coins

View File

@@ -152,15 +152,6 @@ def prepareDataDir(datadir, node_id, conf_file, dir_prefix, base_p2p_port=BASE_P
fp.write('addnode=127.0.0.1:{}\n'.format(base_p2p_port + i))
def startXmrDaemon(node_dir, bin_dir, daemon_bin, opts=[]):
daemon_bin = os.path.expanduser(os.path.join(bin_dir, daemon_bin))
args = [daemon_bin, '--config-file=' + os.path.join(os.path.expanduser(node_dir), 'monerod.conf')] + opts
logging.info('Starting node {} --data-dir={}'.format(daemon_bin, node_dir))
return subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
def startXmrWalletRPC(node_dir, bin_dir, wallet_bin, node_id, opts=[]):
daemon_bin = os.path.expanduser(os.path.join(bin_dir, wallet_bin))
@@ -734,5 +725,6 @@ class Test(unittest.TestCase):
self.wait_for_no_offer(swap_clients[1], offer_id)
if __name__ == '__main__':
unittest.main()