mirror of
https://github.com/aljazceru/python-teos.git
synced 2025-12-17 14:14:22 +01:00
Fixes some bugs based on E2E testing
This commit is contained in:
@@ -23,7 +23,7 @@ from apps.cli import (
|
|||||||
from common.logger import Logger
|
from common.logger import Logger
|
||||||
from common.appointment import Appointment
|
from common.appointment import Appointment
|
||||||
from common.cryptographer import Cryptographer
|
from common.cryptographer import Cryptographer
|
||||||
from common.tools import check_sha256_hex_format, compute_locator
|
from common.tools import check_sha256_hex_format, check_locator_format, compute_locator
|
||||||
|
|
||||||
|
|
||||||
HTTP_OK = 200
|
HTTP_OK = 200
|
||||||
@@ -256,7 +256,7 @@ def check_signature(signature, appointment):
|
|||||||
def get_appointment(args):
|
def get_appointment(args):
|
||||||
if not args:
|
if not args:
|
||||||
logger.error("No arguments were given")
|
logger.error("No arguments were given")
|
||||||
return False
|
return None
|
||||||
|
|
||||||
arg_opt = args.pop(0)
|
arg_opt = args.pop(0)
|
||||||
|
|
||||||
@@ -264,27 +264,27 @@ def get_appointment(args):
|
|||||||
sys.exit(help_get_appointment())
|
sys.exit(help_get_appointment())
|
||||||
else:
|
else:
|
||||||
locator = arg_opt
|
locator = arg_opt
|
||||||
valid_locator = check_sha256_hex_format(locator)
|
valid_locator = check_locator_format(locator)
|
||||||
|
|
||||||
if not valid_locator:
|
if not valid_locator:
|
||||||
logger.error("The provided locator is not valid", locator=locator)
|
logger.error("The provided locator is not valid", locator=locator)
|
||||||
return False
|
return None
|
||||||
|
|
||||||
get_appointment_endpoint = "http://{}:{}/get_appointment".format(pisa_api_server, pisa_api_port)
|
get_appointment_endpoint = "http://{}:{}/get_appointment".format(pisa_api_server, pisa_api_port)
|
||||||
parameters = "?locator={}".format(locator)
|
parameters = "?locator={}".format(locator)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
r = requests.get(url=get_appointment_endpoint + parameters, timeout=5)
|
r = requests.get(url=get_appointment_endpoint + parameters, timeout=5)
|
||||||
logger.info("Appointment response returned from server: " + str(r))
|
logger.info("Appointment response returned from server: {}".format(r.json()))
|
||||||
return True
|
return r.json()
|
||||||
|
|
||||||
except ConnectTimeout:
|
except ConnectTimeout:
|
||||||
logger.error("Can't connect to pisa API. Connection timeout")
|
logger.error("Can't connect to pisa API. Connection timeout")
|
||||||
return False
|
return None
|
||||||
|
|
||||||
except ConnectionError:
|
except ConnectionError:
|
||||||
logger.error("Can't connect to pisa API. Server cannot be reached")
|
logger.error("Can't connect to pisa API. Server cannot be reached")
|
||||||
return False
|
return None
|
||||||
|
|
||||||
|
|
||||||
def get_appointment_signature(appointment):
|
def get_appointment_signature(appointment):
|
||||||
|
|||||||
@@ -15,6 +15,19 @@ def check_sha256_hex_format(value):
|
|||||||
return isinstance(value, str) and re.match(r"^[0-9A-Fa-f]{64}$", value) is not None
|
return isinstance(value, str) and re.match(r"^[0-9A-Fa-f]{64}$", value) is not None
|
||||||
|
|
||||||
|
|
||||||
|
def check_locator_format(value):
|
||||||
|
"""
|
||||||
|
Checks if a given value is a 16-byte hex encoded string.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
value(:mod:`str`): the value to be checked.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
:mod:`bool`: Whether or not the value matches the format.
|
||||||
|
"""
|
||||||
|
return isinstance(value, str) and re.match(r"^[0-9A-Fa-f]{32}$", value) is not None
|
||||||
|
|
||||||
|
|
||||||
def compute_locator(tx_id):
|
def compute_locator(tx_id):
|
||||||
"""
|
"""
|
||||||
Computes an appointment locator given a transaction id.
|
Computes an appointment locator given a transaction id.
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from http.client import HTTPException
|
from http.client import HTTPException
|
||||||
|
from socket import timeout
|
||||||
|
|
||||||
import pisa.conf as conf
|
import pisa.conf as conf
|
||||||
from pisa.utils.auth_proxy import AuthServiceProxy, JSONRPCException
|
from pisa.utils.auth_proxy import AuthServiceProxy, JSONRPCException
|
||||||
@@ -36,7 +37,7 @@ def can_connect_to_bitcoind():
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
bitcoin_cli().help()
|
bitcoin_cli().help()
|
||||||
except (ConnectionRefusedError, JSONRPCException, HTTPException):
|
except (timeout, ConnectionRefusedError, JSONRPCException, HTTPException):
|
||||||
can_connect = False
|
can_connect = False
|
||||||
|
|
||||||
return can_connect
|
return can_connect
|
||||||
|
|||||||
Reference in New Issue
Block a user