mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-26 14:00:29 +01:00
qa: Allow for partial_match when checking init error
This allows the tests to pass on different platforms
This commit is contained in:
@@ -166,7 +166,7 @@ class TestNode():
|
||||
def wait_until_stopped(self, timeout=BITCOIND_PROC_WAIT_TIMEOUT):
|
||||
wait_until(self.is_node_stopped, timeout=timeout)
|
||||
|
||||
def assert_start_raises_init_error(self, extra_args=None, expected_msg=None, *args, **kwargs):
|
||||
def assert_start_raises_init_error(self, extra_args=None, expected_msg=None, partial_match=False, *args, **kwargs):
|
||||
"""Attempt to start the node and expect it to raise an error.
|
||||
|
||||
extra_args: extra arguments to pass through to bitcoind
|
||||
@@ -187,9 +187,13 @@ class TestNode():
|
||||
# Check stderr for expected message
|
||||
if expected_msg is not None:
|
||||
log_stderr.seek(0)
|
||||
stderr = log_stderr.read().decode('utf-8')
|
||||
if re.fullmatch(expected_msg + '\n', stderr) is None:
|
||||
raise AssertionError('Expected message "{}" does not match stderr:\n"{}"'.format(expected_msg, stderr))
|
||||
stderr = log_stderr.read().decode('utf-8').strip()
|
||||
if partial_match:
|
||||
if re.search(expected_msg, stderr, flags=re.MULTILINE) is None:
|
||||
raise AssertionError('Expected message "{}" does not partially match stderr:\n"{}"'.format(expected_msg, stderr))
|
||||
else:
|
||||
if re.fullmatch(expected_msg, stderr) is None:
|
||||
raise AssertionError('Expected message "{}" does not fully match stderr:\n"{}"'.format(expected_msg, stderr))
|
||||
else:
|
||||
if expected_msg is None:
|
||||
assert_msg = "bitcoind should have exited with an error"
|
||||
|
||||
Reference in New Issue
Block a user