summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorJohn Arbash Meinel <john@arbash-meinel.com>2010-08-24 17:41:12 -0500
committerJohn Arbash Meinel <john@arbash-meinel.com>2010-08-24 17:41:12 -0500
commit8fa9c2b1ac2ab8e9b4df8d6506965d47839e0240 (patch)
treeea125220c058d91b65cf0117b1b3228d9473a82b /python
parent7a7a14024f445a18bbdab8a7dbfe45328ae6e5d6 (diff)
downloadsubunit-8fa9c2b1ac2ab8e9b4df8d6506965d47839e0240.tar.gz
(bug #623642) Add --no-xfail and -F to subunit-filter.
The existing --no-success only filtered out genuine success cases. Now we can filter everything down to stuff that would actually be considered a 'failure'.
Diffstat (limited to 'python')
-rw-r--r--python/subunit/test_results.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/python/subunit/test_results.py b/python/subunit/test_results.py
index 1c91daa..cc588d2 100644
--- a/python/subunit/test_results.py
+++ b/python/subunit/test_results.py
@@ -208,7 +208,7 @@ class TestResultFilter(TestResultDecorator):
"""
def __init__(self, result, filter_error=False, filter_failure=False,
- filter_success=True, filter_skip=False,
+ filter_success=True, filter_skip=False, filter_xfail=False,
filter_predicate=None):
"""Create a FilterResult object filtering to result.
@@ -216,6 +216,7 @@ class TestResultFilter(TestResultDecorator):
:param filter_failure: Filter out failures.
:param filter_success: Filter out successful tests.
:param filter_skip: Filter out skipped tests.
+ :param filter_xfail: Filter out expected failure tests.
:param filter_predicate: A callable taking (test, outcome, err,
details) and returning True if the result should be passed
through. err and details may be none if no error or extra
@@ -227,6 +228,7 @@ class TestResultFilter(TestResultDecorator):
self._filter_failure = filter_failure
self._filter_success = filter_success
self._filter_skip = filter_skip
+ self._filter_xfail = filter_xfail
if filter_predicate is None:
filter_predicate = lambda test, outcome, err, details: True
self.filter_predicate = filter_predicate
@@ -270,7 +272,8 @@ class TestResultFilter(TestResultDecorator):
self._filtered()
def addExpectedFailure(self, test, err=None, details=None):
- if self.filter_predicate(test, 'expectedfailure', err, details):
+ if (not self._filter_xfail and
+ self.filter_predicate(test, 'expectedfailure', err, details)):
self.decorated.startTest(test)
return self.decorated.addExpectedFailure(test, err,
details=details)