From cff56ab3f8f0876c2525c882b85d62d8a4fc1e07 Mon Sep 17 00:00:00 2001 From: Tony Kasparick Date: Sun, 1 Aug 2021 20:59:56 +0200 Subject: [PATCH 1/2] Fix tag alignment in plain text output of report and aggregate command --- watson/cli.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/watson/cli.py b/watson/cli.py index 22bd369b..7e7561e5 100644 --- a/watson/cli.py +++ b/watson/cli.py @@ -736,7 +736,7 @@ def _final_print(lines): tags = project['tags'] if tags: - longest_tag = max(len(tag) for tag in tags or ['']) + longest_tag = max(len(tag['name']) for tag in tags) for tag in tags: _print('\t[{tag} {time}]'.format( From e7d2b3af1f076e3ffc3f66acb29564000f1e530d Mon Sep 17 00:00:00 2001 From: Tony Kasparick Date: Mon, 23 Aug 2021 22:41:56 +0200 Subject: [PATCH 2/2] Added test for tag alignment in plain text output --- tests/test_cli.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/test_cli.py b/tests/test_cli.py index 2a1b3a52..a919f589 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -168,6 +168,24 @@ def test_report_invalid_date(runner, watson, test_dt): assert result.exit_code != 0 +@pytest.mark.parametrize('cmd', [cli.report, cli.aggregate]) +def test_tag_alignment(runner, watson, cmd): + data = [ + ('foo', 4000, 4020, ['A']), + ('foo', 5000, 49000, ['B' * 10]), + ('foo', 50000, 54000, ['C' * 20]), + ('foo', 55000, 56000, ['D' * 30]), + ] + for name, start, end, tags in data: + watson.frames.add(name, start, end, tags) + result = runner.invoke(cmd, + ['-f', '1970-01-01', '-t', '1970-01-01'], + obj=watson) + lines = result.output.split('\n') + tag_line_lengths = [len(line) for line in lines if line.startswith('\t[')] + assert min(tag_line_lengths) == max(tag_line_lengths) + + # watson stop @pytest.mark.parametrize('at_dt', VALID_TIMES_DATA)