diff options
author | Jonathan Lange <jml@canonical.com> | 2012-02-01 18:46:25 +0000 |
---|---|---|
committer | Jonathan Lange <jml@canonical.com> | 2012-02-01 18:46:25 +0000 |
commit | 9325baa4a915cd83756839a2ef98ccaa0cd4c43f (patch) | |
tree | ebacc12013ef6084014ebbddbb73f86a5c00f24c /filters | |
parent | 50bb59d9e9f02af097f16546b88a1c63e6bb262f (diff) | |
parent | 2fff53f50703aadf7856cb9aa54f6f0fe35e6483 (diff) | |
download | subunit-9325baa4a915cd83756839a2ef98ccaa0cd4c43f.tar.gz |
Merge trunk
Diffstat (limited to 'filters')
-rwxr-xr-x | filters/subunit-filter | 37 | ||||
-rwxr-xr-x | filters/subunit-ls | 8 |
2 files changed, 36 insertions, 9 deletions
diff --git a/filters/subunit-filter b/filters/subunit-filter index c06a03a..7f5620f 100755 --- a/filters/subunit-filter +++ b/filters/subunit-filter @@ -28,13 +28,13 @@ Remember to quote shell metacharacters. from optparse import OptionParser import sys -import unittest import re from subunit import ( DiscardStream, ProtocolTestCase, TestProtocolClient, + read_test_list, ) from subunit.test_results import TestResultFilter @@ -46,24 +46,43 @@ parser.add_option("-e", "--no-error", action="store_true", parser.add_option("--failure", action="store_false", help="include failures", default=False, dest="failure") parser.add_option("-f", "--no-failure", action="store_true", - help="include failures", dest="failure") + help="exclude failures", dest="failure") +parser.add_option("--passthrough", action="store_false", + help="Show all non subunit input.", default=False, dest="no_passthrough") parser.add_option("--no-passthrough", action="store_true", help="Hide all non subunit input.", default=False, dest="no_passthrough") parser.add_option("-s", "--success", action="store_false", help="include successes", dest="success") -parser.add_option("--no-skip", action="store_true", - help="exclude skips", dest="skip") parser.add_option("--no-success", action="store_true", help="exclude successes", default=True, dest="success") +parser.add_option("--no-skip", action="store_true", + help="exclude skips", dest="skip") +parser.add_option("--xfail", action="store_false", + help="include expected falures", default=True, dest="xfail") +parser.add_option("--no-xfail", action="store_true", + help="exclude expected falures", default=True, dest="xfail") parser.add_option("-m", "--with", type=str, help="regexp to include (case-sensitive by default)", action="append", dest="with_regexps") +parser.add_option("--fixup-expected-failures", type=str, + help="File with list of test ids that are expected to fail; on failure " + "their result will be changed to xfail; on success they will be " + "changed to error.", dest="fixup_expected_failures", action="append") parser.add_option("--without", type=str, help="regexp to exclude (case-sensitive by default)", action="append", dest="without_regexps") -(options, args) = parser.parse_args() +def only_genuine_failures_callback(option, opt, value, parser): + parser.rargs.insert(0, '--no-passthrough') + parser.rargs.insert(0, '--no-xfail') + parser.rargs.insert(0, '--no-skip') + parser.rargs.insert(0, '--no-success') + +parser.add_option("-F", "--only-genuine-failures", action="callback", + callback=only_genuine_failures_callback, + help="Only pass through failures and exceptions.") +(options, args) = parser.parse_args() def _compile_re_from_list(l): return re.compile("|".join(l), re.MULTILINE) @@ -91,11 +110,15 @@ def _make_regexp_filter(with_regexps, without_regexps): regexp_filter = _make_regexp_filter(options.with_regexps, options.without_regexps) +fixup_expected_failures = set() +for path in options.fixup_expected_failures or (): + fixup_expected_failures.update(read_test_list(path)) result = TestProtocolClient(sys.stdout) result = TestResultFilter(result, filter_error=options.error, filter_failure=options.failure, filter_success=options.success, - filter_skip=options.skip, - filter_predicate=regexp_filter) + filter_skip=options.skip, filter_xfail=options.xfail, + filter_predicate=regexp_filter, + fixup_expected_failures=fixup_expected_failures) if options.no_passthrough: passthrough_stream = DiscardStream() else: diff --git a/filters/subunit-ls b/filters/subunit-ls index 8646134..82db4c3 100755 --- a/filters/subunit-ls +++ b/filters/subunit-ls @@ -20,7 +20,10 @@ from optparse import OptionParser import sys from subunit import DiscardStream, ProtocolTestCase -from subunit.test_results import TestIdPrintingResult +from subunit.test_results import ( + AutoTimingTestResultDecorator, + TestIdPrintingResult, + ) parser = OptionParser(description=__doc__) @@ -30,7 +33,8 @@ parser.add_option("--times", action="store_true", parser.add_option("--no-passthrough", action="store_true", help="Hide all non subunit input.", default=False, dest="no_passthrough") (options, args) = parser.parse_args() -result = TestIdPrintingResult(sys.stdout, options.times) +result = AutoTimingTestResultDecorator( + TestIdPrintingResult(sys.stdout, options.times)) if options.no_passthrough: passthrough_stream = DiscardStream() else: |