|
|
|
#!/usr/bin/env python3
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
# Copyright (c) 2022-2024 tecnovert
|
|
|
|
# Distributed under the MIT software license, see the accompanying
|
|
|
|
# file LICENSE.txt or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
|
|
|
|
import json
|
|
|
|
import urllib
|
|
|
|
from urllib.request import urlopen
|
|
|
|
|
|
|
|
|
|
|
|
REQUIRED_SETTINGS = {'blocks_confirmed': 1, 'conf_target': 1, 'use_segwit': True, 'connection_type': 'rpc'}
|
|
|
|
|
|
|
|
|
|
|
|
def make_boolean(s):
|
|
|
|
return s.lower() in ['1', 'true']
|
|
|
|
|
|
|
|
|
|
|
|
def post_json_req(url, json_data):
|
|
|
|
req = urllib.request.Request(url)
|
|
|
|
req.add_header('Content-Type', 'application/json; charset=utf-8')
|
|
|
|
post_bytes = json.dumps(json_data).encode('utf-8')
|
|
|
|
req.add_header('Content-Length', len(post_bytes))
|
|
|
|
return urlopen(req, post_bytes, timeout=300).read()
|
|
|
|
|
|
|
|
|
|
|
|
def read_text_api(port, path=None):
|
|
|
|
url = f'http://127.0.0.1:{port}/json'
|
|
|
|
if path is not None:
|
|
|
|
url += '/' + path
|
|
|
|
return urlopen(url, timeout=300).read().decode('utf-8')
|
|
|
|
|
|
|
|
|
|
|
|
def read_json_api(port, path=None, json_data=None):
|
|
|
|
url = f'http://127.0.0.1:{port}/json'
|
|
|
|
if path is not None:
|
|
|
|
url += '/' + path
|
|
|
|
|
|
|
|
if json_data is not None:
|
|
|
|
return json.loads(post_json_req(url, json_data))
|
|
|
|
return json.loads(urlopen(url, timeout=300).read())
|
|
|
|
|
|
|
|
|
|
|
|
def post_json_api(port, path, json_data):
|
|
|
|
url = f'http://127.0.0.1:{port}/json'
|
|
|
|
if path is not None:
|
|
|
|
url += '/' + path
|
|
|
|
return json.loads(post_json_req(url, json_data))
|
|
|
|
|
|
|
|
|
|
|
|
def waitForServer(delay_event, port, wait_for=20):
|
|
|
|
for i in range(wait_for):
|
|
|
|
if delay_event.is_set():
|
|
|
|
raise ValueError('Test stopped.')
|
|
|
|
try:
|
|
|
|
delay_event.wait(1)
|
|
|
|
summary = read_json_api(port)
|
|
|
|
return
|
|
|
|
except Exception as e:
|
|
|
|
print('waitForServer, error:', str(e))
|
|
|
|
raise ValueError('waitForServer failed')
|