summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2011-04-11 15:56:05 +0200
committerJelmer Vernooij <jelmer@samba.org>2011-04-11 15:56:05 +0200
commit990cf93fb02250ccbd42153fc1f6b87b867d977e (patch)
tree67a78fcacffd4483eb94c166e4bdda93998d399d /python
parent67a43dcef5f1511398ef32052d1220a0ef35ffcf (diff)
downloadsubunit-git-990cf93fb02250ccbd42153fc1f6b87b867d977e.tar.gz
Filter errors as well.
Diffstat (limited to 'python')
-rw-r--r--python/subunit/test_results.py8
-rw-r--r--python/subunit/tests/test_subunit_filter.py16
2 files changed, 18 insertions, 6 deletions
diff --git a/python/subunit/test_results.py b/python/subunit/test_results.py
index b3308ea..4e642ea 100644
--- a/python/subunit/test_results.py
+++ b/python/subunit/test_results.py
@@ -339,8 +339,12 @@ class TestResultFilter(TestResultDecorator):
def addError(self, test, err=None, details=None):
if (self.filter_predicate(test, 'error', err, details)):
- self._buffered_calls.append(
- ('addError', [test, err], {'details': details}))
+ if test.id() in self._fixup_expected_failures:
+ self._buffered_calls.append(
+ ('addExpectedFailure', [test, err], {'details': details}))
+ else:
+ self._buffered_calls.append(
+ ('addError', [test, err], {'details': details}))
else:
self._filtered()
diff --git a/python/subunit/tests/test_subunit_filter.py b/python/subunit/tests/test_subunit_filter.py
index 855aa1e..386c5a2 100644
--- a/python/subunit/tests/test_subunit_filter.py
+++ b/python/subunit/tests/test_subunit_filter.py
@@ -94,10 +94,18 @@ xfail todo
fixup_expected_failures=set(["failed"]))
self.run_tests(result_filter)
self.assertEqual(['failed', 'todo'],
- [error[0].id() for error in filtered_result.expectedFailures])
- self.assertEqual([],
- [failure[0].id() for failure in
- filtered_result.failures])
+ [failure[0].id() for failure in filtered_result.expectedFailures])
+ self.assertEqual([], filtered_result.failures)
+ self.assertEqual(4, filtered_result.testsRun)
+
+ def test_fixup_expected_errors(self):
+ filtered_result = unittest.TestResult()
+ result_filter = TestResultFilter(filtered_result,
+ fixup_expected_failures=set(["error"]))
+ self.run_tests(result_filter)
+ self.assertEqual(['error', 'todo'],
+ [failure[0].id() for failure in filtered_result.expectedFailures])
+ self.assertEqual([], filtered_result.errors)
self.assertEqual(4, filtered_result.testsRun)
def test_exclude_failure(self):