summaryrefslogtreecommitdiff
path: root/selftest/subunithelper.py
diff options
context:
space:
mode:
Diffstat (limited to 'selftest/subunithelper.py')
-rw-r--r--selftest/subunithelper.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/selftest/subunithelper.py b/selftest/subunithelper.py
index c9d3daaaba..163f2ba7db 100644
--- a/selftest/subunithelper.py
+++ b/selftest/subunithelper.py
@@ -222,6 +222,13 @@ def find_in_list(regexes, fullname):
return None
+class ImmediateFail(Exception):
+ """Raised to abort immediately."""
+
+ def __init__(self):
+ super(ImmediateFail, self).__init__("test failed and fail_immediately set")
+
+
class FilterOps(testtools.testresult.TestResult):
def control_msg(self, msg):
@@ -259,7 +266,7 @@ class FilterOps(testtools.testresult.TestResult):
self._ops.addError(test, details)
self.output = None
if self.fail_immediately:
- raise Exception("test failed and fail_immediately set")
+ raise ImmediateFail()
def addSkip(self, test, details=None):
test = self._add_prefix(test)
@@ -288,9 +295,9 @@ class FilterOps(testtools.testresult.TestResult):
self._ops.addFailure(test, details)
if self.output:
self._ops.output_msg(self.output)
+ if self.fail_immediately:
+ raise ImmediateFail()
self.output = None
- if self.fail_immediately:
- raise Exception("test failed and fail_immediately set")
def addSuccess(self, test, details=None):
test = self._add_prefix(test)