[Pkg-bitcoin-commits] [bitcoin] 27/126: [test] Add assert_raises_process_error to assert process errors
Jonas Smedegaard
dr at jones.dk
Mon Nov 13 20:01:01 UTC 2017
This is an automated email from the git hooks/post-receive script.
js pushed a commit to annotated tag debian/0.15.1_dfsg-1
in repository bitcoin.
commit e38211f5e8900ee9027c671d7c655958e4dbe8e7
Author: João Barbosa <joao.paulo.barbosa at gmail.com>
Date: Wed Sep 6 16:35:57 2017 +0100
[test] Add assert_raises_process_error to assert process errors
Github-Pull: #11125
Rebased-From: 232e3e8471edb346c09f906c996b2f350cabc72a
---
test/functional/test_framework/util.py | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/test/functional/test_framework/util.py b/test/functional/test_framework/util.py
index a5bc495..b2d8199 100644
--- a/test/functional/test_framework/util.py
+++ b/test/functional/test_framework/util.py
@@ -12,6 +12,7 @@ import logging
import os
import random
import re
+from subprocess import CalledProcessError
import time
from . import coverage
@@ -57,6 +58,30 @@ def assert_raises_message(exc, message, fun, *args, **kwds):
else:
raise AssertionError("No exception raised")
+def assert_raises_process_error(returncode, output, fun, *args, **kwds):
+ """Execute a process and asserts the process return code and output.
+
+ Calls function `fun` with arguments `args` and `kwds`. Catches a CalledProcessError
+ and verifies that the return code and output are as expected. Throws AssertionError if
+ no CalledProcessError was raised or if the return code and output are not as expected.
+
+ Args:
+ returncode (int): the process return code.
+ output (string): [a substring of] the process output.
+ fun (function): the function to call. This should execute a process.
+ args*: positional arguments for the function.
+ kwds**: named arguments for the function.
+ """
+ try:
+ fun(*args, **kwds)
+ except CalledProcessError as e:
+ if returncode != e.returncode:
+ raise AssertionError("Unexpected returncode %i" % e.returncode)
+ if output not in e.output:
+ raise AssertionError("Expected substring not found:" + e.output)
+ else:
+ raise AssertionError("No exception raised")
+
def assert_raises_jsonrpc(code, message, fun, *args, **kwds):
"""Run an RPC and verify that a specific JSONRPC exception code and message is raised.
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-bitcoin/bitcoin.git
More information about the Pkg-bitcoin-commits
mailing list