diff options
author | Jelmer Vernooij <jelmer@jelmer.uk> | 2022-11-05 19:50:47 +0000 |
---|---|---|
committer | Jelmer Vernooij <jelmer@jelmer.uk> | 2022-11-05 19:50:47 +0000 |
commit | a9508172f4e3adf38ff5c132216f74f77339c0d2 (patch) | |
tree | 49d2e4cbc855e6d06b2e2624d952a058dfb3b735 /python/subunit/filter_scripts/subunit_ls.py | |
parent | 966545998f7fb94400fe262dccc48f1e858dd661 (diff) | |
parent | 73451b78c45941ed83c33ed1a2cbf01ef9c650ff (diff) | |
download | subunit-git-a9508172f4e3adf38ff5c132216f74f77339c0d2.tar.gz |
Merge branch 'fix-filter-entrypoints' of https://github.com/mtreinish/subunit
Diffstat (limited to 'python/subunit/filter_scripts/subunit_ls.py')
-rwxr-xr-x | python/subunit/filter_scripts/subunit_ls.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/python/subunit/filter_scripts/subunit_ls.py b/python/subunit/filter_scripts/subunit_ls.py new file mode 100755 index 0000000..0eee267 --- /dev/null +++ b/python/subunit/filter_scripts/subunit_ls.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python +# subunit: extensions to python unittest to get test results from subprocesses. +# Copyright (C) 2008 Robert Collins <robertc@robertcollins.net> +# +# Licensed under either the Apache License, Version 2.0 or the BSD 3-clause +# license at the users choice. A copy of both licenses are available in the +# project source as Apache-2.0 and BSD. You may not use this file except in +# compliance with one of these two licences. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under these licenses is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# license you chose for the specific language governing permissions and +# limitations under that license. +# + +"""List tests in a subunit stream.""" + +from optparse import OptionParser +import sys + +from testtools import ( + CopyStreamResult, StreamResultRouter, + StreamSummary) + +from subunit import ByteStreamToStreamResult +from subunit.filters import find_stream +from subunit.test_results import ( + CatFiles, + TestIdPrintingResult, + ) + + +def main(): + parser = OptionParser(description=__doc__) + parser.add_option("--times", action="store_true", + help="list the time each test took (requires a timestamped stream)", + default=False) + parser.add_option("--exists", action="store_true", + help="list tests that are reported as existing (as well as ran)", + default=False) + parser.add_option("--no-passthrough", action="store_true", + help="Hide all non subunit input.", default=False, dest="no_passthrough") + (options, args) = parser.parse_args() + test = ByteStreamToStreamResult( + find_stream(sys.stdin, args), non_subunit_name="stdout") + result = TestIdPrintingResult(sys.stdout, options.times, options.exists) + if not options.no_passthrough: + result = StreamResultRouter(result) + cat = CatFiles(sys.stdout) + result.add_rule(cat, 'test_id', test_id=None) + summary = StreamSummary() + result = CopyStreamResult([result, summary]) + result.startTestRun() + test.run(result) + result.stopTestRun() + if summary.wasSuccessful(): + exit_code = 0 + else: + exit_code = 1 + sys.exit(exit_code) + + +if __name__ == '__main__': + main() |