diff options
| author | Matthew Treinish <mtreinish@kortar.org> | 2021-06-10 13:47:44 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-10 13:47:44 -0400 |
| commit | 0dd0bec5fa4b5a6ff32b76224cfe46e2e86ac482 (patch) | |
| tree | 22799c84bef57eeb6a565a27697ddfc17d35d343 /python/subunit/_output.py | |
| parent | bbaeb704a3e7f6a4cc78cecc44f12f6077b33fc7 (diff) | |
| parent | 1dafb884e47f5fc26232672b01c2a9574577e7be (diff) | |
| download | subunit-git-0dd0bec5fa4b5a6ff32b76224cfe46e2e86ac482.tar.gz | |
Merge branch 'master' into fix-filter-entrypoints
Diffstat (limited to 'python/subunit/_output.py')
| -rw-r--r-- | python/subunit/_output.py | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/python/subunit/_output.py b/python/subunit/_output.py index aa92646..c598c81 100644 --- a/python/subunit/_output.py +++ b/python/subunit/_output.py @@ -22,6 +22,8 @@ from optparse import ( ) import sys +from dateutil import parser as date_parser + from subunit import make_stream_binary from subunit.iso8601 import UTC from subunit.v2 import StreamResultToBytes @@ -121,6 +123,18 @@ def parse_arguments(args=None, ParserClass=OptionParser): dest="tags", default=[] ) + parser.add_option( + "--start-time", + help="Specify a time for the test to start", + dest="start_time", + default=None + ) + parser.add_option( + "--stop-time", + help="Specify a time for the test to finish executing", + dest="stop_time", + default=None + ) (options, args) = parser.parse_args(args) if options.mimetype and not options.attach_file: @@ -152,6 +166,14 @@ def set_status_cb(option, opt_str, value, parser, status_name): def generate_stream_results(args, output_writer): + if args.start_time: + start_time = date_parser.parse(args.start_time) + else: + start_time = None + if args.stop_time: + stop_time = date_parser.parse(args.stop_time) + else: + stop_time = None output_writer.startTestRun() if args.attach_file: @@ -170,6 +192,7 @@ def generate_stream_results(args, output_writer): write_status = partial(write_status, mime_type=args.mimetype) if args.tags: write_status = partial(write_status, test_tags=set(args.tags)) + timestamp = start_time or create_timestamp() write_status = partial(write_status, timestamp=create_timestamp()) if args.action not in _FINAL_ACTIONS: write_status = partial(write_status, test_status=args.action) @@ -192,7 +215,11 @@ def generate_stream_results(args, output_writer): if is_last_packet: if args.action in _FINAL_ACTIONS: - write_status = partial(write_status, test_status=args.action) + if stop_time: + write_status = partial(write_status, test_status=args.action, + timestamp=stop_time) + else: + write_status = partial(write_status, test_status=args.action) write_status() |
