test: Avoid empty errmsg in JSONRPCException

It is unclear why the fallback should be an empty message, when it is
better to include all rpc_error details that are available.

Also, include the http status.

This allows to revert commit 6354b4fd7fe819eb13274b212e426a7d10ca75d3,
because it is no longer needed.
This commit is contained in:
MarcoFalke 2026-02-12 16:44:36 +01:00
parent b65ff0e5a1
commit 211111b804
No known key found for this signature in database
2 changed files with 4 additions and 9 deletions

View File

@ -51,11 +51,7 @@ log = logging.getLogger("BitcoinRPC")
class JSONRPCException(Exception):
def __init__(self, rpc_error, http_status=None):
try:
errmsg = '%(message)s (%(code)i)' % rpc_error
except (KeyError, TypeError):
errmsg = ''
super().__init__(errmsg)
super().__init__(f"{rpc_error} [http_status={http_status}]")
self.error = rpc_error
self.http_status = http_status

View File

@ -147,11 +147,10 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
except subprocess.CalledProcessError as e:
self.log.exception(f"Called Process failed with stdout='{e.stdout}'; stderr='{e.stderr}';")
self.success = TestStatus.FAILED
except JSONRPCException as e:
self.log.exception(f"Failure during setup: error={e.error}, http_status={e.http_status}")
self.success = TestStatus.FAILED
except BaseException:
self.log.exception("Unexpected exception")
# The `exception` log will add the exception info to the message.
# https://docs.python.org/3/library/logging.html#logging.exception
self.log.exception("Unexpected exception:")
self.success = TestStatus.FAILED
finally:
exit_code = self.shutdown()