refactor: Use read_json_api in more tests.
This commit is contained in:
parent
0c620ea388
commit
02bd90053a
@ -1,3 +1,3 @@
|
|||||||
name = "basicswap"
|
name = "basicswap"
|
||||||
|
|
||||||
__version__ = "0.0.34"
|
__version__ = "0.0.35"
|
||||||
|
@ -196,12 +196,19 @@ def wait_for_in_progress(delay_event, swap_client, bid_id, sent=False):
|
|||||||
raise ValueError('wait_for_in_progress timed out.')
|
raise ValueError('wait_for_in_progress timed out.')
|
||||||
|
|
||||||
|
|
||||||
|
def read_json_api(port, path=None):
|
||||||
|
url = f'http://127.0.0.1:{port}/json'
|
||||||
|
if path is not None:
|
||||||
|
url += '/' + path
|
||||||
|
return json.loads(urlopen(url).read())
|
||||||
|
|
||||||
|
|
||||||
def wait_for_none_active(delay_event, port, wait_for=30):
|
def wait_for_none_active(delay_event, port, wait_for=30):
|
||||||
for i in range(wait_for):
|
for i in range(wait_for):
|
||||||
if delay_event.is_set():
|
if delay_event.is_set():
|
||||||
raise ValueError('Test stopped.')
|
raise ValueError('Test stopped.')
|
||||||
delay_event.wait(1)
|
delay_event.wait(1)
|
||||||
js = json.loads(urlopen('http://127.0.0.1:{}/json'.format(port)).read())
|
js = read_json_api(port)
|
||||||
if js['num_swapping'] == 0 and js['num_watched_outputs'] == 0:
|
if js['num_swapping'] == 0 and js['num_watched_outputs'] == 0:
|
||||||
return
|
return
|
||||||
raise ValueError('wait_for_none_active timed out.')
|
raise ValueError('wait_for_none_active timed out.')
|
||||||
@ -213,7 +220,7 @@ def waitForServer(delay_event, port, wait_for=20):
|
|||||||
raise ValueError('Test stopped.')
|
raise ValueError('Test stopped.')
|
||||||
try:
|
try:
|
||||||
delay_event.wait(1)
|
delay_event.wait(1)
|
||||||
summary = json.loads(urlopen('http://127.0.0.1:{}/json'.format(port)).read())
|
summary = read_json_api(port)
|
||||||
return
|
return
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print('waitForServer, error:', str(e))
|
print('waitForServer, error:', str(e))
|
||||||
@ -224,7 +231,7 @@ def waitForNumOffers(delay_event, port, offers, wait_for=20):
|
|||||||
for i in range(wait_for):
|
for i in range(wait_for):
|
||||||
if delay_event.is_set():
|
if delay_event.is_set():
|
||||||
raise ValueError('Test stopped.')
|
raise ValueError('Test stopped.')
|
||||||
summary = json.loads(urlopen('http://127.0.0.1:{}/json'.format(port)).read())
|
summary = read_json_api(port)
|
||||||
if summary['num_network_offers'] >= offers:
|
if summary['num_network_offers'] >= offers:
|
||||||
return
|
return
|
||||||
delay_event.wait(1)
|
delay_event.wait(1)
|
||||||
@ -235,7 +242,7 @@ def waitForNumBids(delay_event, port, bids, wait_for=20):
|
|||||||
for i in range(wait_for):
|
for i in range(wait_for):
|
||||||
if delay_event.is_set():
|
if delay_event.is_set():
|
||||||
raise ValueError('Test stopped.')
|
raise ValueError('Test stopped.')
|
||||||
summary = json.loads(urlopen('http://127.0.0.1:{}/json'.format(port)).read())
|
summary = read_json_api(port)
|
||||||
if summary['num_recv_bids'] >= bids:
|
if summary['num_recv_bids'] >= bids:
|
||||||
return
|
return
|
||||||
delay_event.wait(1)
|
delay_event.wait(1)
|
||||||
@ -246,7 +253,7 @@ def waitForNumSwapping(delay_event, port, bids, wait_for=60):
|
|||||||
for i in range(wait_for):
|
for i in range(wait_for):
|
||||||
if delay_event.is_set():
|
if delay_event.is_set():
|
||||||
raise ValueError('Test stopped.')
|
raise ValueError('Test stopped.')
|
||||||
summary = json.loads(urlopen('http://127.0.0.1:{}/json'.format(port)).read())
|
summary = read_json_api(port)
|
||||||
if summary['num_swapping'] >= bids:
|
if summary['num_swapping'] >= bids:
|
||||||
return
|
return
|
||||||
delay_event.wait(1)
|
delay_event.wait(1)
|
||||||
@ -368,10 +375,3 @@ def compare_bid_states(states, expect_states):
|
|||||||
raise ValueError(f'Expected state {expect_states[i]}, found {s[1]}')
|
raise ValueError(f'Expected state {expect_states[i]}, found {s[1]}')
|
||||||
assert(s[1] == expect_states[i])
|
assert(s[1] == expect_states[i])
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def read_json_api(port, path=None):
|
|
||||||
url = f'http://127.0.0.1:{port}/json'
|
|
||||||
if path is not None:
|
|
||||||
url += '/' + path
|
|
||||||
return json.loads(urlopen(url).read())
|
|
||||||
|
@ -14,7 +14,6 @@ import logging
|
|||||||
import unittest
|
import unittest
|
||||||
import traceback
|
import traceback
|
||||||
import threading
|
import threading
|
||||||
from urllib.request import urlopen
|
|
||||||
|
|
||||||
import basicswap.config as cfg
|
import basicswap.config as cfg
|
||||||
from basicswap.basicswap import (
|
from basicswap.basicswap import (
|
||||||
@ -46,6 +45,7 @@ from tests.basicswap.common import (
|
|||||||
checkForks,
|
checkForks,
|
||||||
stopDaemons,
|
stopDaemons,
|
||||||
delay_for,
|
delay_for,
|
||||||
|
read_json_api,
|
||||||
TEST_HTTP_HOST,
|
TEST_HTTP_HOST,
|
||||||
TEST_HTTP_PORT,
|
TEST_HTTP_PORT,
|
||||||
BASE_P2P_PORT,
|
BASE_P2P_PORT,
|
||||||
@ -305,7 +305,7 @@ class Test(unittest.TestCase):
|
|||||||
for i in range(wait_for):
|
for i in range(wait_for):
|
||||||
if delay_event.is_set():
|
if delay_event.is_set():
|
||||||
raise ValueError('Test stopped.')
|
raise ValueError('Test stopped.')
|
||||||
js = json.loads(urlopen('http://127.0.0.1:{}/json/network'.format(port)).read())
|
js = read_json_api(port, 'network')
|
||||||
num_nodes = 0
|
num_nodes = 0
|
||||||
for p in js['peers']:
|
for p in js['peers']:
|
||||||
if p['ready'] is True:
|
if p['ready'] is True:
|
||||||
@ -320,7 +320,7 @@ class Test(unittest.TestCase):
|
|||||||
logging.info('---------- Test Network')
|
logging.info('---------- Test Network')
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_1 = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_1 = read_json_api(1801, 'wallets')
|
||||||
|
|
||||||
offer_id = swap_clients[0].postOffer(Coins.PART, Coins.BTC, 100 * COIN, 0.1 * COIN, 100 * COIN, SwapTypes.SELLER_FIRST)
|
offer_id = swap_clients[0].postOffer(Coins.PART, Coins.BTC, 100 * COIN, 0.1 * COIN, 100 * COIN, SwapTypes.SELLER_FIRST)
|
||||||
|
|
||||||
@ -329,7 +329,7 @@ class Test(unittest.TestCase):
|
|||||||
|
|
||||||
self.wait_for_num_nodes(1800, 2)
|
self.wait_for_num_nodes(1800, 2)
|
||||||
|
|
||||||
js_n0 = json.loads(urlopen('http://127.0.0.1:1800/json/network').read())
|
js_n0 = read_json_api(1800, 'network')
|
||||||
print(dumpj(js_n0))
|
print(dumpj(js_n0))
|
||||||
|
|
||||||
path = [swap_clients[0]._network._network_pubkey, swap_clients[2]._network._network_pubkey]
|
path = [swap_clients[0]._network._network_pubkey, swap_clients[2]._network._network_pubkey]
|
||||||
|
@ -19,7 +19,6 @@ import signal
|
|||||||
import logging
|
import logging
|
||||||
import unittest
|
import unittest
|
||||||
import threading
|
import threading
|
||||||
from urllib.request import urlopen
|
|
||||||
|
|
||||||
import basicswap.config as cfg
|
import basicswap.config as cfg
|
||||||
from basicswap.basicswap import (
|
from basicswap.basicswap import (
|
||||||
@ -54,6 +53,7 @@ from tests.basicswap.common import (
|
|||||||
wait_for_bid,
|
wait_for_bid,
|
||||||
wait_for_bid_tx_state,
|
wait_for_bid_tx_state,
|
||||||
wait_for_in_progress,
|
wait_for_in_progress,
|
||||||
|
read_json_api,
|
||||||
TEST_HTTP_HOST,
|
TEST_HTTP_HOST,
|
||||||
TEST_HTTP_PORT,
|
TEST_HTTP_PORT,
|
||||||
BASE_PORT,
|
BASE_PORT,
|
||||||
@ -383,8 +383,8 @@ class Test(unittest.TestCase):
|
|||||||
wait_for_bid(delay_event, swap_clients[0], bid_id, BidStates.SWAP_COMPLETED, wait_for=60)
|
wait_for_bid(delay_event, swap_clients[0], bid_id, BidStates.SWAP_COMPLETED, wait_for=60)
|
||||||
wait_for_bid(delay_event, swap_clients[1], bid_id, BidStates.SWAP_COMPLETED, sent=True, wait_for=60)
|
wait_for_bid(delay_event, swap_clients[1], bid_id, BidStates.SWAP_COMPLETED, sent=True, wait_for=60)
|
||||||
|
|
||||||
js_0 = json.loads(urlopen('http://127.0.0.1:1800/json').read())
|
js_0 = read_json_api(1800)
|
||||||
js_1 = json.loads(urlopen('http://127.0.0.1:1801/json').read())
|
js_1 = read_json_api(1801)
|
||||||
assert(js_0['num_swapping'] == 0 and js_0['num_watched_outputs'] == 0)
|
assert(js_0['num_swapping'] == 0 and js_0['num_watched_outputs'] == 0)
|
||||||
assert(js_1['num_swapping'] == 0 and js_1['num_watched_outputs'] == 0)
|
assert(js_1['num_swapping'] == 0 and js_1['num_watched_outputs'] == 0)
|
||||||
|
|
||||||
@ -408,8 +408,8 @@ class Test(unittest.TestCase):
|
|||||||
wait_for_bid(delay_event, swap_clients[0], bid_id, BidStates.SWAP_COMPLETED, sent=True, wait_for=60)
|
wait_for_bid(delay_event, swap_clients[0], bid_id, BidStates.SWAP_COMPLETED, sent=True, wait_for=60)
|
||||||
wait_for_bid(delay_event, swap_clients[1], bid_id, BidStates.SWAP_COMPLETED, wait_for=60)
|
wait_for_bid(delay_event, swap_clients[1], bid_id, BidStates.SWAP_COMPLETED, wait_for=60)
|
||||||
|
|
||||||
js_0 = json.loads(urlopen('http://127.0.0.1:1800/json').read())
|
js_0 = read_json_api(1800)
|
||||||
js_1 = json.loads(urlopen('http://127.0.0.1:1801/json').read())
|
js_1 = read_json_api(1801)
|
||||||
assert(js_0['num_swapping'] == 0 and js_0['num_watched_outputs'] == 0)
|
assert(js_0['num_swapping'] == 0 and js_0['num_watched_outputs'] == 0)
|
||||||
assert(js_1['num_swapping'] == 0 and js_1['num_watched_outputs'] == 0)
|
assert(js_1['num_swapping'] == 0 and js_1['num_watched_outputs'] == 0)
|
||||||
|
|
||||||
@ -433,10 +433,10 @@ class Test(unittest.TestCase):
|
|||||||
wait_for_bid(delay_event, swap_clients[0], bid_id, BidStates.SWAP_COMPLETED, wait_for=60)
|
wait_for_bid(delay_event, swap_clients[0], bid_id, BidStates.SWAP_COMPLETED, wait_for=60)
|
||||||
wait_for_bid(delay_event, swap_clients[1], bid_id, BidStates.SWAP_COMPLETED, sent=True, wait_for=60)
|
wait_for_bid(delay_event, swap_clients[1], bid_id, BidStates.SWAP_COMPLETED, sent=True, wait_for=60)
|
||||||
|
|
||||||
js_0bid = json.loads(urlopen('http://127.0.0.1:1800/json/bids/{}'.format(bid_id.hex())).read())
|
js_0bid = read_json_api(1800, 'bids/{}'.format(bid_id.hex()))
|
||||||
|
|
||||||
js_0 = json.loads(urlopen('http://127.0.0.1:1800/json').read())
|
js_0 = read_json_api(1800)
|
||||||
js_1 = json.loads(urlopen('http://127.0.0.1:1801/json').read())
|
js_1 = read_json_api(1801)
|
||||||
|
|
||||||
assert(js_0['num_swapping'] == 0 and js_0['num_watched_outputs'] == 0)
|
assert(js_0['num_swapping'] == 0 and js_0['num_watched_outputs'] == 0)
|
||||||
assert(js_1['num_swapping'] == 0 and js_1['num_watched_outputs'] == 0)
|
assert(js_1['num_swapping'] == 0 and js_1['num_watched_outputs'] == 0)
|
||||||
@ -462,8 +462,8 @@ class Test(unittest.TestCase):
|
|||||||
wait_for_bid(delay_event, swap_clients[0], bid_id, BidStates.SWAP_COMPLETED, wait_for=60)
|
wait_for_bid(delay_event, swap_clients[0], bid_id, BidStates.SWAP_COMPLETED, wait_for=60)
|
||||||
wait_for_bid(delay_event, swap_clients[1], bid_id, BidStates.BID_ABANDONED, sent=True, wait_for=60)
|
wait_for_bid(delay_event, swap_clients[1], bid_id, BidStates.BID_ABANDONED, sent=True, wait_for=60)
|
||||||
|
|
||||||
js_0 = json.loads(urlopen('http://127.0.0.1:1800/json').read())
|
js_0 = read_json_api(1800)
|
||||||
js_1 = json.loads(urlopen('http://127.0.0.1:1801/json').read())
|
js_1 = read_json_api(1801)
|
||||||
assert(js_0['num_swapping'] == 0 and js_0['num_watched_outputs'] == 0)
|
assert(js_0['num_swapping'] == 0 and js_0['num_watched_outputs'] == 0)
|
||||||
assert(js_1['num_swapping'] == 0 and js_1['num_watched_outputs'] == 0)
|
assert(js_1['num_swapping'] == 0 and js_1['num_watched_outputs'] == 0)
|
||||||
|
|
||||||
@ -471,7 +471,7 @@ class Test(unittest.TestCase):
|
|||||||
logging.info('---------- Test same client, BTC to NMC')
|
logging.info('---------- Test same client, BTC to NMC')
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_0_before = json.loads(urlopen('http://127.0.0.1:1800/json').read())
|
js_0_before = read_json_api(1800)
|
||||||
|
|
||||||
offer_id = swap_clients[0].postOffer(Coins.NMC, Coins.BTC, 10 * COIN, 10 * COIN, 10 * COIN, SwapTypes.SELLER_FIRST, ABS_LOCK_TIME)
|
offer_id = swap_clients[0].postOffer(Coins.NMC, Coins.BTC, 10 * COIN, 10 * COIN, 10 * COIN, SwapTypes.SELLER_FIRST, ABS_LOCK_TIME)
|
||||||
|
|
||||||
@ -487,7 +487,7 @@ class Test(unittest.TestCase):
|
|||||||
wait_for_bid_tx_state(delay_event, swap_clients[0], bid_id, TxStates.TX_REDEEMED, TxStates.TX_REDEEMED, wait_for=60)
|
wait_for_bid_tx_state(delay_event, swap_clients[0], bid_id, TxStates.TX_REDEEMED, TxStates.TX_REDEEMED, wait_for=60)
|
||||||
wait_for_bid(delay_event, swap_clients[0], bid_id, BidStates.SWAP_COMPLETED, wait_for=60)
|
wait_for_bid(delay_event, swap_clients[0], bid_id, BidStates.SWAP_COMPLETED, wait_for=60)
|
||||||
|
|
||||||
js_0 = json.loads(urlopen('http://127.0.0.1:1800/json').read())
|
js_0 = read_json_api(1800)
|
||||||
assert(js_0['num_swapping'] == 0 and js_0['num_watched_outputs'] == 0)
|
assert(js_0['num_swapping'] == 0 and js_0['num_watched_outputs'] == 0)
|
||||||
assert(js_0['num_recv_bids'] == js_0_before['num_recv_bids'] + 1 and js_0['num_sent_bids'] == js_0_before['num_sent_bids'] + 1)
|
assert(js_0['num_recv_bids'] == js_0_before['num_recv_bids'] + 1 and js_0['num_sent_bids'] == js_0_before['num_sent_bids'] + 1)
|
||||||
|
|
||||||
@ -495,7 +495,7 @@ class Test(unittest.TestCase):
|
|||||||
logging.info('---------- Test error, BTC to NMC, set fee above bid value')
|
logging.info('---------- Test error, BTC to NMC, set fee above bid value')
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_0_before = json.loads(urlopen('http://127.0.0.1:1800/json').read())
|
js_0_before = read_json_api(1800)
|
||||||
|
|
||||||
offer_id = swap_clients[0].postOffer(Coins.NMC, Coins.BTC, 0.001 * COIN, 1.0 * COIN, 0.001 * COIN, SwapTypes.SELLER_FIRST, ABS_LOCK_TIME)
|
offer_id = swap_clients[0].postOffer(Coins.NMC, Coins.BTC, 0.001 * COIN, 1.0 * COIN, 0.001 * COIN, SwapTypes.SELLER_FIRST, ABS_LOCK_TIME)
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright (c) 2020-2021 tecnovert
|
# Copyright (c) 2020-2022 tecnovert
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
@ -19,19 +19,20 @@ python tests/basicswap/extended/test_wallet_init.py
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import json
|
|
||||||
import time
|
import time
|
||||||
import shutil
|
import shutil
|
||||||
import logging
|
import logging
|
||||||
import unittest
|
import unittest
|
||||||
import traceback
|
import traceback
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
from urllib.request import urlopen
|
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
from tests.basicswap.mnemonics import mnemonics
|
from tests.basicswap.mnemonics import mnemonics
|
||||||
|
|
||||||
import basicswap.config as cfg
|
import basicswap.config as cfg
|
||||||
|
from tests.basicswap.common import (
|
||||||
|
read_json_api,
|
||||||
|
)
|
||||||
import bin.basicswap_prepare as prepareSystem
|
import bin.basicswap_prepare as prepareSystem
|
||||||
import bin.basicswap_run as runSystem
|
import bin.basicswap_run as runSystem
|
||||||
|
|
||||||
@ -55,7 +56,7 @@ def waitForServer(port):
|
|||||||
for i in range(20):
|
for i in range(20):
|
||||||
try:
|
try:
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
summary = json.loads(urlopen('http://127.0.0.1:{}/json'.format(port)).read())
|
summary = read_json_api(port)
|
||||||
break
|
break
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print('waitForServer, error:', str(e))
|
print('waitForServer, error:', str(e))
|
||||||
@ -149,12 +150,12 @@ class Test(unittest.TestCase):
|
|||||||
try:
|
try:
|
||||||
waitForServer(12700)
|
waitForServer(12700)
|
||||||
|
|
||||||
wallets_0 = json.loads(urlopen('http://127.0.0.1:12700/json/wallets').read())
|
wallets_0 = read_json_api(12700, 'wallets')
|
||||||
assert(wallets_0['1']['expected_seed'] is True)
|
assert(wallets_0['1']['expected_seed'] is True)
|
||||||
assert(wallets_0['6']['expected_seed'] is True)
|
assert(wallets_0['6']['expected_seed'] is True)
|
||||||
|
|
||||||
waitForServer(12701)
|
waitForServer(12701)
|
||||||
wallets_1 = json.loads(urlopen('http://127.0.0.1:12701/json/wallets').read())
|
wallets_1 = read_json_api(12701, 'wallets')
|
||||||
|
|
||||||
assert(wallets_0['1']['expected_seed'] is True)
|
assert(wallets_0['1']['expected_seed'] is True)
|
||||||
assert(wallets_1['6']['expected_seed'] is True)
|
assert(wallets_1['6']['expected_seed'] is True)
|
||||||
|
@ -29,7 +29,6 @@ import logging
|
|||||||
import unittest
|
import unittest
|
||||||
import threading
|
import threading
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
from urllib.request import urlopen
|
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
from basicswap.rpc_xmr import (
|
from basicswap.rpc_xmr import (
|
||||||
@ -40,6 +39,7 @@ from basicswap.rpc import (
|
|||||||
)
|
)
|
||||||
from tests.basicswap.mnemonics import mnemonics as test_mnemonics
|
from tests.basicswap.mnemonics import mnemonics as test_mnemonics
|
||||||
from tests.basicswap.common import (
|
from tests.basicswap.common import (
|
||||||
|
read_json_api,
|
||||||
waitForServer,
|
waitForServer,
|
||||||
)
|
)
|
||||||
from basicswap.contrib.rpcauth import generate_salt, password_to_hmac
|
from basicswap.contrib.rpcauth import generate_salt, password_to_hmac
|
||||||
@ -268,7 +268,7 @@ class Test(unittest.TestCase):
|
|||||||
for i in range(NUM_NODES):
|
for i in range(NUM_NODES):
|
||||||
waitForServer(self.delay_event, UI_PORT + i)
|
waitForServer(self.delay_event, UI_PORT + i)
|
||||||
|
|
||||||
wallets = json.loads(urlopen('http://127.0.0.1:{}/json/wallets'.format(UI_PORT + 1)).read())
|
wallets = read_json_api(UI_PORT + 1, 'wallets')
|
||||||
|
|
||||||
self.xmr_addr = wallets['6']['main_address']
|
self.xmr_addr = wallets['6']['main_address']
|
||||||
num_blocks = 100
|
num_blocks = 100
|
||||||
|
@ -1,15 +1,13 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright (c) 2021 tecnovert
|
# Copyright (c) 2021-2022 tecnovert
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
import json
|
|
||||||
import random
|
import random
|
||||||
import logging
|
import logging
|
||||||
import unittest
|
import unittest
|
||||||
from urllib.request import urlopen
|
|
||||||
|
|
||||||
from basicswap.basicswap import (
|
from basicswap.basicswap import (
|
||||||
Coins,
|
Coins,
|
||||||
@ -26,6 +24,7 @@ from basicswap.util import (
|
|||||||
)
|
)
|
||||||
from tests.basicswap.common import (
|
from tests.basicswap.common import (
|
||||||
wait_for_bid,
|
wait_for_bid,
|
||||||
|
read_json_api,
|
||||||
wait_for_offer,
|
wait_for_offer,
|
||||||
wait_for_none_active,
|
wait_for_none_active,
|
||||||
)
|
)
|
||||||
@ -61,14 +60,14 @@ class Test(BaseTest):
|
|||||||
logging.info('---------- Test {} to XMR'.format(str(self.test_coin_from)))
|
logging.info('---------- Test {} to XMR'.format(str(self.test_coin_from)))
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_0 = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_0 = read_json_api(1800, 'wallets')
|
||||||
node0_from_before = self.getBalance(js_0)
|
node0_from_before = self.getBalance(js_0)
|
||||||
|
|
||||||
js_1 = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_1 = read_json_api(1801, 'wallets')
|
||||||
node1_from_before = self.getBalance(js_1)
|
node1_from_before = self.getBalance(js_1)
|
||||||
|
|
||||||
js_0_xmr = json.loads(urlopen('http://127.0.0.1:1800/json/wallets/xmr').read())
|
js_0_xmr = read_json_api(1800, 'wallets/xmr')
|
||||||
js_1_xmr = json.loads(urlopen('http://127.0.0.1:1801/json/wallets/xmr').read())
|
js_1_xmr = read_json_api(1801, 'wallets/xmr')
|
||||||
|
|
||||||
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
||||||
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
||||||
@ -87,17 +86,17 @@ class Test(BaseTest):
|
|||||||
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.SWAP_COMPLETED, sent=True)
|
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.SWAP_COMPLETED, sent=True)
|
||||||
|
|
||||||
amount_from = float(format_amount(amt_swap, 8))
|
amount_from = float(format_amount(amt_swap, 8))
|
||||||
js_1 = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_1 = read_json_api(1801, 'wallets')
|
||||||
node1_from_after = self.getBalance(js_1)
|
node1_from_after = self.getBalance(js_1)
|
||||||
assert(node1_from_after > node1_from_before + (amount_from - 0.05))
|
assert(node1_from_after > node1_from_before + (amount_from - 0.05))
|
||||||
|
|
||||||
js_0 = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_0 = read_json_api(1800, 'wallets')
|
||||||
node0_from_after = self.getBalance(js_0)
|
node0_from_after = self.getBalance(js_0)
|
||||||
# TODO: Discard block rewards
|
# TODO: Discard block rewards
|
||||||
# assert(node0_from_after < node0_from_before - amount_from)
|
# assert(node0_from_after < node0_from_before - amount_from)
|
||||||
|
|
||||||
js_0_xmr_after = json.loads(urlopen('http://127.0.0.1:1800/json/wallets/xmr').read())
|
js_0_xmr_after = read_json_api(1800, 'wallets/xmr')
|
||||||
js_1_xmr_after = json.loads(urlopen('http://127.0.0.1:1801/json/wallets/xmr').read())
|
js_1_xmr_after = read_json_api(1801, 'wallets/xmr')
|
||||||
|
|
||||||
scale_from = 8
|
scale_from = 8
|
||||||
amount_to = int((amt_swap * rate_swap) // (10 ** scale_from))
|
amount_to = int((amt_swap * rate_swap) // (10 ** scale_from))
|
||||||
@ -110,7 +109,7 @@ class Test(BaseTest):
|
|||||||
logging.info('---------- Test {} to XMR leader recovers coin a lock tx'.format(str(self.test_coin_from)))
|
logging.info('---------- Test {} to XMR leader recovers coin a lock tx'.format(str(self.test_coin_from)))
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_w0_before = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_before = read_json_api(1800, 'wallets')
|
||||||
node0_from_before = self.getBalance(js_w0_before)
|
node0_from_before = self.getBalance(js_w0_before)
|
||||||
|
|
||||||
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
||||||
@ -135,7 +134,7 @@ class Test(BaseTest):
|
|||||||
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, wait_for=180)
|
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, wait_for=180)
|
||||||
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, sent=True)
|
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, sent=True)
|
||||||
|
|
||||||
js_w0_after = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_after = read_json_api(1800, 'wallets')
|
||||||
node0_from_after = self.getBalance(js_w0_after)
|
node0_from_after = self.getBalance(js_w0_after)
|
||||||
|
|
||||||
# TODO: Discard block rewards
|
# TODO: Discard block rewards
|
||||||
@ -145,8 +144,8 @@ class Test(BaseTest):
|
|||||||
logging.info('---------- Test {} to XMR follower recovers coin a lock tx'.format(str(self.test_coin_from)))
|
logging.info('---------- Test {} to XMR follower recovers coin a lock tx'.format(str(self.test_coin_from)))
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_w0_before = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_before = read_json_api(1800, 'wallets')
|
||||||
js_w1_before = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_w1_before = read_json_api(1801, 'wallets')
|
||||||
|
|
||||||
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
||||||
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
||||||
@ -171,7 +170,7 @@ class Test(BaseTest):
|
|||||||
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.BID_STALLED_FOR_TEST, wait_for=180)
|
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.BID_STALLED_FOR_TEST, wait_for=180)
|
||||||
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_SWIPED, wait_for=80, sent=True)
|
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_SWIPED, wait_for=80, sent=True)
|
||||||
|
|
||||||
js_w1_after = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_w1_after = read_json_api(1801, 'wallets')
|
||||||
|
|
||||||
node1_from_before = self.getBalance(js_w1_before)
|
node1_from_before = self.getBalance(js_w1_before)
|
||||||
node1_from_after = self.getBalance(js_w1_after)
|
node1_from_after = self.getBalance(js_w1_after)
|
||||||
@ -187,8 +186,8 @@ class Test(BaseTest):
|
|||||||
|
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_w0_before = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_before = read_json_api(1800, 'wallets')
|
||||||
js_w1_before = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_w1_before = read_json_api(1801, 'wallets')
|
||||||
|
|
||||||
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
||||||
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
||||||
@ -211,8 +210,8 @@ class Test(BaseTest):
|
|||||||
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, wait_for=180)
|
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, wait_for=180)
|
||||||
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, sent=True)
|
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, sent=True)
|
||||||
|
|
||||||
js_w0_after = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_after = read_json_api(1800, 'wallets')
|
||||||
js_w1_after = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_w1_after = read_json_api(1801, 'wallets')
|
||||||
|
|
||||||
node0_from_before = self.getBalance(js_w0_before)
|
node0_from_before = self.getBalance(js_w0_before)
|
||||||
node0_from_after = self.getBalance(js_w0_after)
|
node0_from_after = self.getBalance(js_w0_after)
|
||||||
|
@ -1,15 +1,13 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright (c) 2021 tecnovert
|
# Copyright (c) 2021-2022 tecnovert
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
import json
|
|
||||||
import random
|
import random
|
||||||
import logging
|
import logging
|
||||||
import unittest
|
import unittest
|
||||||
from urllib.request import urlopen
|
|
||||||
|
|
||||||
from basicswap.basicswap import (
|
from basicswap.basicswap import (
|
||||||
Coins,
|
Coins,
|
||||||
@ -26,6 +24,7 @@ from basicswap.util import (
|
|||||||
)
|
)
|
||||||
from tests.basicswap.common import (
|
from tests.basicswap.common import (
|
||||||
wait_for_bid,
|
wait_for_bid,
|
||||||
|
read_json_api,
|
||||||
wait_for_offer,
|
wait_for_offer,
|
||||||
wait_for_none_active,
|
wait_for_none_active,
|
||||||
)
|
)
|
||||||
@ -82,14 +81,14 @@ class Test(BaseTest):
|
|||||||
logging.info('---------- Test {} to XMR'.format(str(self.test_coin_from)))
|
logging.info('---------- Test {} to XMR'.format(str(self.test_coin_from)))
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_0 = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_0 = read_json_api(1800, 'wallets')
|
||||||
node0_from_before = self.getBalance(js_0)
|
node0_from_before = self.getBalance(js_0)
|
||||||
|
|
||||||
js_1 = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_1 = read_json_api(1801, 'wallets')
|
||||||
node1_from_before = self.getBalance(js_1)
|
node1_from_before = self.getBalance(js_1)
|
||||||
|
|
||||||
js_0_xmr = json.loads(urlopen('http://127.0.0.1:1800/json/wallets/xmr').read())
|
js_0_xmr = read_json_api(1800, 'wallets/xmr')
|
||||||
js_1_xmr = json.loads(urlopen('http://127.0.0.1:1801/json/wallets/xmr').read())
|
js_1_xmr = read_json_api(1801, 'wallets/xmr')
|
||||||
|
|
||||||
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
||||||
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
||||||
@ -108,17 +107,17 @@ class Test(BaseTest):
|
|||||||
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.SWAP_COMPLETED, sent=True)
|
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.SWAP_COMPLETED, sent=True)
|
||||||
|
|
||||||
amount_from = float(format_amount(amt_swap, 8))
|
amount_from = float(format_amount(amt_swap, 8))
|
||||||
js_1 = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_1 = read_json_api(1801, 'wallets')
|
||||||
node1_from_after = self.getBalance(js_1)
|
node1_from_after = self.getBalance(js_1)
|
||||||
assert(node1_from_after > node1_from_before + (amount_from - 0.05))
|
assert(node1_from_after > node1_from_before + (amount_from - 0.05))
|
||||||
|
|
||||||
js_0 = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_0 = read_json_api(1800, 'wallets')
|
||||||
node0_from_after = self.getBalance(js_0)
|
node0_from_after = self.getBalance(js_0)
|
||||||
# TODO: Discard block rewards
|
# TODO: Discard block rewards
|
||||||
# assert(node0_from_after < node0_from_before - amount_from)
|
# assert(node0_from_after < node0_from_before - amount_from)
|
||||||
|
|
||||||
js_0_xmr_after = json.loads(urlopen('http://127.0.0.1:1800/json/wallets/xmr').read())
|
js_0_xmr_after = read_json_api(1800, 'wallets/xmr')
|
||||||
js_1_xmr_after = json.loads(urlopen('http://127.0.0.1:1801/json/wallets/xmr').read())
|
js_1_xmr_after = read_json_api(1801, 'wallets/xmr')
|
||||||
|
|
||||||
scale_from = 8
|
scale_from = 8
|
||||||
amount_to = int((amt_swap * rate_swap) // (10 ** scale_from))
|
amount_to = int((amt_swap * rate_swap) // (10 ** scale_from))
|
||||||
@ -131,7 +130,7 @@ class Test(BaseTest):
|
|||||||
logging.info('---------- Test {} to XMR leader recovers coin a lock tx'.format(str(self.test_coin_from)))
|
logging.info('---------- Test {} to XMR leader recovers coin a lock tx'.format(str(self.test_coin_from)))
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_w0_before = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_before = read_json_api(1800, 'wallets')
|
||||||
node0_from_before = self.getBalance(js_w0_before)
|
node0_from_before = self.getBalance(js_w0_before)
|
||||||
|
|
||||||
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
||||||
@ -156,7 +155,7 @@ class Test(BaseTest):
|
|||||||
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, wait_for=180)
|
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, wait_for=180)
|
||||||
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, sent=True)
|
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, sent=True)
|
||||||
|
|
||||||
js_w0_after = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_after = read_json_api(1800, 'wallets')
|
||||||
node0_from_after = self.getBalance(js_w0_after)
|
node0_from_after = self.getBalance(js_w0_after)
|
||||||
|
|
||||||
# TODO: Discard block rewards
|
# TODO: Discard block rewards
|
||||||
@ -166,8 +165,8 @@ class Test(BaseTest):
|
|||||||
logging.info('---------- Test {} to XMR follower recovers coin a lock tx'.format(str(self.test_coin_from)))
|
logging.info('---------- Test {} to XMR follower recovers coin a lock tx'.format(str(self.test_coin_from)))
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_w0_before = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_before = read_json_api(1800, 'wallets')
|
||||||
js_w1_before = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_w1_before = read_json_api(1801, 'wallets')
|
||||||
|
|
||||||
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
||||||
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
||||||
@ -192,7 +191,7 @@ class Test(BaseTest):
|
|||||||
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.BID_STALLED_FOR_TEST, wait_for=180)
|
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.BID_STALLED_FOR_TEST, wait_for=180)
|
||||||
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_SWIPED, wait_for=80, sent=True)
|
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_SWIPED, wait_for=80, sent=True)
|
||||||
|
|
||||||
js_w1_after = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_w1_after = read_json_api(1801, 'wallets')
|
||||||
node1_from_before = self.getBalance(js_w1_before)
|
node1_from_before = self.getBalance(js_w1_before)
|
||||||
node1_from_after = self.getBalance(js_w1_after)
|
node1_from_after = self.getBalance(js_w1_after)
|
||||||
amount_from = float(format_amount(amt_swap, 8))
|
amount_from = float(format_amount(amt_swap, 8))
|
||||||
@ -207,8 +206,8 @@ class Test(BaseTest):
|
|||||||
|
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_w0_before = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_before = read_json_api(1800, 'wallets')
|
||||||
js_w1_before = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_w1_before = read_json_api(1801, 'wallets')
|
||||||
|
|
||||||
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
||||||
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
||||||
@ -231,8 +230,8 @@ class Test(BaseTest):
|
|||||||
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, wait_for=180)
|
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, wait_for=180)
|
||||||
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, sent=True)
|
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, sent=True)
|
||||||
|
|
||||||
js_w0_after = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_after = read_json_api(1800, 'wallets')
|
||||||
js_w1_after = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_w1_after = read_json_api(1801, 'wallets')
|
||||||
|
|
||||||
node0_from_before = self.getBalance(js_w0_before)
|
node0_from_before = self.getBalance(js_w0_before)
|
||||||
node0_from_after = self.getBalance(js_w0_after)
|
node0_from_after = self.getBalance(js_w0_after)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright (c) 2021 tecnovert
|
# Copyright (c) 2021-2022 tecnovert
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
@ -27,6 +27,7 @@ from basicswap.util import (
|
|||||||
)
|
)
|
||||||
from tests.basicswap.common import (
|
from tests.basicswap.common import (
|
||||||
wait_for_bid,
|
wait_for_bid,
|
||||||
|
read_json_api,
|
||||||
wait_for_offer,
|
wait_for_offer,
|
||||||
wait_for_none_active,
|
wait_for_none_active,
|
||||||
wait_for_balance,
|
wait_for_balance,
|
||||||
@ -45,7 +46,7 @@ class Test(BaseTest):
|
|||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
super(Test, cls).setUpClass()
|
super(Test, cls).setUpClass()
|
||||||
|
|
||||||
js_0 = json.loads(urlopen('http://127.0.0.1:1800/json/wallets/part').read())
|
js_0 = read_json_api(1800, 'wallets/part')
|
||||||
node0_blind_before = js_0['blind_balance'] + js_0['blind_unconfirmed']
|
node0_blind_before = js_0['blind_balance'] + js_0['blind_unconfirmed']
|
||||||
|
|
||||||
post_json = {
|
post_json = {
|
||||||
@ -59,7 +60,7 @@ class Test(BaseTest):
|
|||||||
|
|
||||||
logging.info('Waiting for blind balance')
|
logging.info('Waiting for blind balance')
|
||||||
wait_for_balance(test_delay_event, 'http://127.0.0.1:1800/json/wallets/part', 'blind_balance', 100.0 + node0_blind_before)
|
wait_for_balance(test_delay_event, 'http://127.0.0.1:1800/json/wallets/part', 'blind_balance', 100.0 + node0_blind_before)
|
||||||
js_0 = json.loads(urlopen('http://127.0.0.1:1800/json/wallets/part').read())
|
js_0 = read_json_api(1800, 'wallets/part')
|
||||||
node0_blind_before = js_0['blind_balance'] + js_0['blind_unconfirmed']
|
node0_blind_before = js_0['blind_balance'] + js_0['blind_unconfirmed']
|
||||||
|
|
||||||
def getBalance(self, js_wallets):
|
def getBalance(self, js_wallets):
|
||||||
@ -72,15 +73,15 @@ class Test(BaseTest):
|
|||||||
logging.info('---------- Test PARTct to XMR')
|
logging.info('---------- Test PARTct to XMR')
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_0 = json.loads(urlopen('http://127.0.0.1:1800/json/wallets/part').read())
|
js_0 = read_json_api(1800, 'wallets/part')
|
||||||
assert(float(js_0['blind_balance']) > 10.0)
|
assert(float(js_0['blind_balance']) > 10.0)
|
||||||
node0_blind_before = js_0['blind_balance'] + js_0['blind_unconfirmed']
|
node0_blind_before = js_0['blind_balance'] + js_0['blind_unconfirmed']
|
||||||
|
|
||||||
js_1 = json.loads(urlopen('http://127.0.0.1:1801/json/wallets/part').read())
|
js_1 = read_json_api(1801, 'wallets/part')
|
||||||
node1_blind_before = js_1['blind_balance'] + js_1['blind_unconfirmed']
|
node1_blind_before = js_1['blind_balance'] + js_1['blind_unconfirmed']
|
||||||
|
|
||||||
js_0_xmr = json.loads(urlopen('http://127.0.0.1:1800/json/wallets/xmr').read())
|
js_0_xmr = read_json_api(1800, 'wallets/xmr')
|
||||||
js_1_xmr = json.loads(urlopen('http://127.0.0.1:1801/json/wallets/xmr').read())
|
js_1_xmr = read_json_api(1801, 'wallets/xmr')
|
||||||
|
|
||||||
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
||||||
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
||||||
@ -99,16 +100,16 @@ class Test(BaseTest):
|
|||||||
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.SWAP_COMPLETED, sent=True)
|
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.SWAP_COMPLETED, sent=True)
|
||||||
|
|
||||||
amount_from = float(format_amount(amt_swap, 8))
|
amount_from = float(format_amount(amt_swap, 8))
|
||||||
js_1 = json.loads(urlopen('http://127.0.0.1:1801/json/wallets/part').read())
|
js_1 = read_json_api(1801, 'wallets/part')
|
||||||
node1_blind_after = js_1['blind_balance'] + js_1['blind_unconfirmed']
|
node1_blind_after = js_1['blind_balance'] + js_1['blind_unconfirmed']
|
||||||
assert(node1_blind_after > node1_blind_before + (amount_from - 0.05))
|
assert(node1_blind_after > node1_blind_before + (amount_from - 0.05))
|
||||||
|
|
||||||
js_0 = json.loads(urlopen('http://127.0.0.1:1800/json/wallets/part').read())
|
js_0 = read_json_api(1800, 'wallets/part')
|
||||||
node0_blind_after = js_0['blind_balance'] + js_0['blind_unconfirmed']
|
node0_blind_after = js_0['blind_balance'] + js_0['blind_unconfirmed']
|
||||||
assert(node0_blind_after < node0_blind_before - amount_from)
|
assert(node0_blind_after < node0_blind_before - amount_from)
|
||||||
|
|
||||||
js_0_xmr_after = json.loads(urlopen('http://127.0.0.1:1800/json/wallets/xmr').read())
|
js_0_xmr_after = read_json_api(1800, 'wallets/xmr')
|
||||||
js_1_xmr_after = json.loads(urlopen('http://127.0.0.1:1801/json/wallets/xmr').read())
|
js_1_xmr_after = read_json_api(1801, 'wallets/xmr')
|
||||||
|
|
||||||
scale_from = 8
|
scale_from = 8
|
||||||
amount_to = int((amt_swap * rate_swap) // (10 ** scale_from))
|
amount_to = int((amt_swap * rate_swap) // (10 ** scale_from))
|
||||||
@ -121,7 +122,7 @@ class Test(BaseTest):
|
|||||||
logging.info('---------- Test PARTct to XMR leader recovers coin a lock tx')
|
logging.info('---------- Test PARTct to XMR leader recovers coin a lock tx')
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_w0_before = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_before = read_json_api(1800, 'wallets')
|
||||||
node0_blind_before = self.getBalance(js_w0_before)
|
node0_blind_before = self.getBalance(js_w0_before)
|
||||||
|
|
||||||
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
||||||
@ -146,7 +147,7 @@ class Test(BaseTest):
|
|||||||
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, wait_for=180)
|
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, wait_for=180)
|
||||||
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, sent=True)
|
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, sent=True)
|
||||||
|
|
||||||
js_w0_after = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_after = read_json_api(1800, 'wallets')
|
||||||
node0_blind_after = self.getBalance(js_w0_after)
|
node0_blind_after = self.getBalance(js_w0_after)
|
||||||
assert(node0_blind_before - node0_blind_after < 0.02)
|
assert(node0_blind_before - node0_blind_after < 0.02)
|
||||||
|
|
||||||
@ -154,8 +155,8 @@ class Test(BaseTest):
|
|||||||
logging.info('---------- Test PARTct to XMR follower recovers coin a lock tx')
|
logging.info('---------- Test PARTct to XMR follower recovers coin a lock tx')
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_w0_before = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_before = read_json_api(1800, 'wallets')
|
||||||
js_w1_before = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_w1_before = read_json_api(1801, 'wallets')
|
||||||
|
|
||||||
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
||||||
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
||||||
@ -180,7 +181,7 @@ class Test(BaseTest):
|
|||||||
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.BID_STALLED_FOR_TEST, wait_for=180)
|
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.BID_STALLED_FOR_TEST, wait_for=180)
|
||||||
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_SWIPED, wait_for=80, sent=True)
|
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_SWIPED, wait_for=80, sent=True)
|
||||||
|
|
||||||
js_w1_after = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_w1_after = read_json_api(1801, 'wallets')
|
||||||
|
|
||||||
node1_blind_before = self.getBalance(js_w1_before)
|
node1_blind_before = self.getBalance(js_w1_before)
|
||||||
node1_blind_after = self.getBalance(js_w1_after)
|
node1_blind_after = self.getBalance(js_w1_after)
|
||||||
@ -207,8 +208,8 @@ class Test(BaseTest):
|
|||||||
|
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
||||||
js_w0_before = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_before = read_json_api(1800, 'wallets')
|
||||||
js_w1_before = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_w1_before = read_json_api(1801, 'wallets')
|
||||||
|
|
||||||
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
amt_swap = make_int(random.uniform(0.1, 2.0), scale=8, r=1)
|
||||||
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
rate_swap = make_int(random.uniform(0.2, 20.0), scale=12, r=1)
|
||||||
@ -232,8 +233,8 @@ class Test(BaseTest):
|
|||||||
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, wait_for=180)
|
wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, wait_for=180)
|
||||||
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, sent=True)
|
wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.XMR_SWAP_FAILED_REFUNDED, sent=True)
|
||||||
|
|
||||||
js_w0_after = json.loads(urlopen('http://127.0.0.1:1800/json/wallets').read())
|
js_w0_after = read_json_api(1800, 'wallets')
|
||||||
js_w1_after = json.loads(urlopen('http://127.0.0.1:1801/json/wallets').read())
|
js_w1_after = read_json_api(1801, 'wallets')
|
||||||
|
|
||||||
node0_blind_before = self.getBalance(js_w0_before)
|
node0_blind_before = self.getBalance(js_w0_before)
|
||||||
node0_blind_after = self.getBalance(js_w0_after)
|
node0_blind_after = self.getBalance(js_w0_after)
|
||||||
|
@ -33,6 +33,7 @@ from basicswap.rpc import (
|
|||||||
)
|
)
|
||||||
from tests.basicswap.mnemonics import mnemonics
|
from tests.basicswap.mnemonics import mnemonics
|
||||||
from tests.basicswap.common import (
|
from tests.basicswap.common import (
|
||||||
|
read_json_api,
|
||||||
waitForServer,
|
waitForServer,
|
||||||
waitForNumOffers,
|
waitForNumOffers,
|
||||||
waitForNumBids,
|
waitForNumBids,
|
||||||
@ -167,7 +168,7 @@ class Test(unittest.TestCase):
|
|||||||
'lockhrs': '24'}).encode()
|
'lockhrs': '24'}).encode()
|
||||||
|
|
||||||
offer_id = json.loads(urlopen('http://127.0.0.1:12700/json/offers/new', data=data).read())
|
offer_id = json.loads(urlopen('http://127.0.0.1:12700/json/offers/new', data=data).read())
|
||||||
summary = json.loads(urlopen('http://127.0.0.1:12700/json').read())
|
summary = read_json_api(12700)
|
||||||
assert(summary['num_sent_offers'] == 1)
|
assert(summary['num_sent_offers'] == 1)
|
||||||
except Exception:
|
except Exception:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
@ -175,7 +176,7 @@ class Test(unittest.TestCase):
|
|||||||
logger.info('Waiting for offer:')
|
logger.info('Waiting for offer:')
|
||||||
waitForNumOffers(delay_event, 12701, 1)
|
waitForNumOffers(delay_event, 12701, 1)
|
||||||
|
|
||||||
offers = json.loads(urlopen('http://127.0.0.1:12701/json/offers').read())
|
offers = read_json_api(12701, 'offers')
|
||||||
offer = offers[0]
|
offer = offers[0]
|
||||||
|
|
||||||
data = parse.urlencode({
|
data = parse.urlencode({
|
||||||
@ -186,7 +187,7 @@ class Test(unittest.TestCase):
|
|||||||
|
|
||||||
waitForNumBids(delay_event, 12700, 1)
|
waitForNumBids(delay_event, 12700, 1)
|
||||||
|
|
||||||
bids = json.loads(urlopen('http://127.0.0.1:12700/json/bids').read())
|
bids = read_json_api(12700, 'bids')
|
||||||
bid = bids[0]
|
bid = bids[0]
|
||||||
|
|
||||||
data = parse.urlencode({
|
data = parse.urlencode({
|
||||||
@ -205,7 +206,7 @@ class Test(unittest.TestCase):
|
|||||||
processes[1].start()
|
processes[1].start()
|
||||||
|
|
||||||
waitForServer(delay_event, 12701)
|
waitForServer(delay_event, 12701)
|
||||||
rv = json.loads(urlopen('http://127.0.0.1:12701/json').read())
|
rv = read_json_api(12701)
|
||||||
assert(rv['num_swapping'] == 1)
|
assert(rv['num_swapping'] == 1)
|
||||||
|
|
||||||
update_thread = threading.Thread(target=updateThread)
|
update_thread = threading.Thread(target=updateThread)
|
||||||
@ -215,7 +216,7 @@ class Test(unittest.TestCase):
|
|||||||
for i in range(240):
|
for i in range(240):
|
||||||
delay_event.wait(5)
|
delay_event.wait(5)
|
||||||
|
|
||||||
rv = json.loads(urlopen('http://127.0.0.1:12700/json/bids/{}'.format(bid['bid_id'])).read())
|
rv = read_json_api(12700, 'bids/{}'.format(bid['bid_id']))
|
||||||
print(rv)
|
print(rv)
|
||||||
if rv['bid_state'] == 'Completed':
|
if rv['bid_state'] == 'Completed':
|
||||||
break
|
break
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright (c) 2021 tecnovert
|
# Copyright (c) 2021-2022 tecnovert
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
@ -25,6 +25,7 @@ from urllib import parse
|
|||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
|
|
||||||
from tests.basicswap.common import (
|
from tests.basicswap.common import (
|
||||||
|
read_json_api,
|
||||||
waitForServer,
|
waitForServer,
|
||||||
waitForNumOffers,
|
waitForNumOffers,
|
||||||
waitForNumBids,
|
waitForNumBids,
|
||||||
@ -49,7 +50,7 @@ class Test(XmrTestBase):
|
|||||||
|
|
||||||
waitForServer(self.delay_event, 12700)
|
waitForServer(self.delay_event, 12700)
|
||||||
waitForServer(self.delay_event, 12701)
|
waitForServer(self.delay_event, 12701)
|
||||||
wallets1 = json.loads(urlopen('http://127.0.0.1:12701/json/wallets').read())
|
wallets1 = read_json_api(12701, 'wallets')
|
||||||
assert(float(wallets1['6']['balance']) > 0.0)
|
assert(float(wallets1['6']['balance']) > 0.0)
|
||||||
|
|
||||||
offer_data = {
|
offer_data = {
|
||||||
@ -67,7 +68,7 @@ class Test(XmrTestBase):
|
|||||||
rv = json.loads(urlopen('http://127.0.0.1:12700/json/offers/new', data=parse.urlencode(offer_data).encode()).read())
|
rv = json.loads(urlopen('http://127.0.0.1:12700/json/offers/new', data=parse.urlencode(offer_data).encode()).read())
|
||||||
offer1_id = rv['offer_id']
|
offer1_id = rv['offer_id']
|
||||||
|
|
||||||
summary = json.loads(urlopen('http://127.0.0.1:12700/json').read())
|
summary = read_json_api(12700)
|
||||||
assert(summary['num_sent_offers'] > 1)
|
assert(summary['num_sent_offers'] > 1)
|
||||||
|
|
||||||
logger.info('Waiting for offer')
|
logger.info('Waiting for offer')
|
||||||
@ -141,8 +142,8 @@ class Test(XmrTestBase):
|
|||||||
raise ValueError('Test stopped.')
|
raise ValueError('Test stopped.')
|
||||||
self.delay_event.wait(4)
|
self.delay_event.wait(4)
|
||||||
|
|
||||||
rv0 = json.loads(urlopen('http://127.0.0.1:12700/json/bids/{}'.format(bid0_id)).read())
|
rv0 = read_json_api(12700, 'bids/{}'.format(bid0_id))
|
||||||
rv1 = json.loads(urlopen('http://127.0.0.1:12700/json/bids/{}'.format(bid1_id)).read())
|
rv1 = read_json_api(12700, 'bids/{}'.format(bid1_id))
|
||||||
if rv0['bid_state'] == 'Completed' and rv1['bid_state'] == 'Completed':
|
if rv0['bid_state'] == 'Completed' and rv1['bid_state'] == 'Completed':
|
||||||
break
|
break
|
||||||
assert(rv0['bid_state'] == 'Completed')
|
assert(rv0['bid_state'] == 'Completed')
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright (c) 2020-2021 tecnovert
|
# Copyright (c) 2020-2022 tecnovert
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
@ -25,6 +25,7 @@ from urllib import parse
|
|||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
|
|
||||||
from tests.basicswap.common import (
|
from tests.basicswap.common import (
|
||||||
|
read_json_api,
|
||||||
waitForServer,
|
waitForServer,
|
||||||
waitForNumOffers,
|
waitForNumOffers,
|
||||||
waitForNumBids,
|
waitForNumBids,
|
||||||
@ -47,7 +48,7 @@ class Test(XmrTestBase):
|
|||||||
|
|
||||||
waitForServer(self.delay_event, 12700)
|
waitForServer(self.delay_event, 12700)
|
||||||
waitForServer(self.delay_event, 12701)
|
waitForServer(self.delay_event, 12701)
|
||||||
wallets1 = json.loads(urlopen('http://127.0.0.1:12701/json/wallets').read())
|
wallets1 = read_json_api(12701, 'wallets')
|
||||||
assert(float(wallets1['6']['balance']) > 0.0)
|
assert(float(wallets1['6']['balance']) > 0.0)
|
||||||
|
|
||||||
data = parse.urlencode({
|
data = parse.urlencode({
|
||||||
@ -59,13 +60,13 @@ class Test(XmrTestBase):
|
|||||||
'lockhrs': '24'}).encode()
|
'lockhrs': '24'}).encode()
|
||||||
|
|
||||||
offer_id = json.loads(urlopen('http://127.0.0.1:12700/json/offers/new', data=data).read())['offer_id']
|
offer_id = json.loads(urlopen('http://127.0.0.1:12700/json/offers/new', data=data).read())['offer_id']
|
||||||
summary = json.loads(urlopen('http://127.0.0.1:12700/json').read())
|
summary = read_json_api(12700)
|
||||||
assert(summary['num_sent_offers'] == 1)
|
assert(summary['num_sent_offers'] == 1)
|
||||||
|
|
||||||
logger.info('Waiting for offer')
|
logger.info('Waiting for offer')
|
||||||
waitForNumOffers(self.delay_event, 12701, 1)
|
waitForNumOffers(self.delay_event, 12701, 1)
|
||||||
|
|
||||||
offers = json.loads(urlopen('http://127.0.0.1:12701/json/offers').read())
|
offers = read_json_api(12701, 'offers')
|
||||||
offer = offers[0]
|
offer = offers[0]
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
@ -95,7 +96,7 @@ class Test(XmrTestBase):
|
|||||||
waitForNumBids(self.delay_event, 12700, 1)
|
waitForNumBids(self.delay_event, 12700, 1)
|
||||||
|
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
bids = json.loads(urlopen('http://127.0.0.1:12700/json/bids').read())
|
bids = read_json_api(12700, 'bids')
|
||||||
bid = bids[0]
|
bid = bids[0]
|
||||||
if bid['bid_state'] == 'Received':
|
if bid['bid_state'] == 'Received':
|
||||||
break
|
break
|
||||||
@ -118,7 +119,7 @@ class Test(XmrTestBase):
|
|||||||
self.processes[1].start()
|
self.processes[1].start()
|
||||||
|
|
||||||
waitForServer(self.delay_event, 12701)
|
waitForServer(self.delay_event, 12701)
|
||||||
rv = json.loads(urlopen('http://127.0.0.1:12701/json').read())
|
rv = read_json_api(12701)
|
||||||
assert(rv['num_swapping'] == 1)
|
assert(rv['num_swapping'] == 1)
|
||||||
|
|
||||||
rv = json.loads(urlopen('http://127.0.0.1:12700/json/revokeoffer/{}'.format(offer_id)).read())
|
rv = json.loads(urlopen('http://127.0.0.1:12700/json/revokeoffer/{}'.format(offer_id)).read())
|
||||||
@ -136,7 +137,7 @@ class Test(XmrTestBase):
|
|||||||
assert(rv['bid_state'] == 'Completed')
|
assert(rv['bid_state'] == 'Completed')
|
||||||
|
|
||||||
# Ensure offer was revoked
|
# Ensure offer was revoked
|
||||||
summary = json.loads(urlopen('http://127.0.0.1:12700/json').read())
|
summary = read_json_api(12700)
|
||||||
assert(summary['num_network_offers'] == 0)
|
assert(summary['num_network_offers'] == 0)
|
||||||
|
|
||||||
# Wait for bid to be removed from in-progress
|
# Wait for bid to be removed from in-progress
|
||||||
|
Loading…
Reference in New Issue
Block a user