Filter errors as well.

This commit is contained in:
Jelmer Vernooij
2011-04-11 15:56:05 +02:00
parent 67a43dcef5
commit 990cf93fb0
3 changed files with 19 additions and 7 deletions

View File

@@ -109,7 +109,7 @@ result = TestResultFilter(result, filter_error=options.error,
filter_failure=options.failure, filter_success=options.success,
filter_skip=options.skip,
filter_predicate=regexp_filter,
filter_expected_failures=fixup_expected_failures)
fixup_expected_failures=fixup_expected_failures)
if options.no_passthrough:
passthrough_stream = DiscardStream()
else:

View File

@@ -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()

View File

@@ -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):