diff --git a/dvc/utils/diff.py b/dvc/utils/diff.py index b412aafeb..7442564a4 100644 --- a/dvc/utils/diff.py +++ b/dvc/utils/diff.py @@ -91,7 +91,7 @@ def table(header, rows, markdown=False): if not rows and not markdown: return "" - return tabulate( + ret = tabulate( rows, header, tablefmt="github" if markdown else "plain", @@ -100,6 +100,12 @@ def table(header, rows, markdown=False): missingval="None", ) + if markdown: + # NOTE: md table is incomplete without the trailing newline + ret += "\n" + + return ret + def format_dict(d): ret = {} diff --git a/tests/unit/command/test_diff.py b/tests/unit/command/test_diff.py index c52837f7e..529cbe37a 100644 --- a/tests/unit/command/test_diff.py +++ b/tests/unit/command/test_diff.py @@ -114,7 +114,7 @@ def test_no_changes(mocker, caplog): def test_show_md_empty(): - assert _show_md({}) == ("| Status | Path |\n" "|----------|--------|") + assert _show_md({}) == ("| Status | Path |\n|----------|--------|\n") def test_show_md(): @@ -138,5 +138,5 @@ def test_show_md(): "| deleted | data{sep}bar |\n" "| deleted | data{sep}foo |\n" "| deleted | zoo |\n" - "| modified | file |" + "| modified | file |\n" ).format(sep=os.path.sep) diff --git a/tests/unit/command/test_metrics.py b/tests/unit/command/test_metrics.py index 45392ad91..89429eb79 100644 --- a/tests/unit/command/test_metrics.py +++ b/tests/unit/command/test_metrics.py @@ -171,7 +171,8 @@ def test_metrics_diff_markdown_empty(): assert _show_diff({}, markdown=True) == textwrap.dedent( """\ | Path | Metric | Value | Change | - |--------|----------|---------|----------|""" + |--------|----------|---------|----------| + """ ) @@ -191,7 +192,8 @@ def test_metrics_diff_markdown(): |--------------|----------|---------|--------------------| | metrics.yaml | a.b.c | 2 | 1 | | metrics.yaml | a.d.e | 4 | 1 | - | metrics.yaml | x.b | 6 | diff not supported |""" + | metrics.yaml | x.b | 6 | diff not supported | + """ ) diff --git a/tests/unit/command/test_params.py b/tests/unit/command/test_params.py index 787110145..de55499cd 100644 --- a/tests/unit/command/test_params.py +++ b/tests/unit/command/test_params.py @@ -129,7 +129,8 @@ def test_params_diff_markdown_empty(): assert _show_diff({}, markdown=True) == textwrap.dedent( """\ | Path | Param | Old | New | - |--------|---------|-------|-------|""" + |--------|---------|-------|-------| + """ ) @@ -149,7 +150,8 @@ def test_params_diff_markdown(): |-------------|---------|-------|-------| | params.yaml | a.b.c | 1 | None | | params.yaml | a.d.e | None | 4 | - | params.yaml | x.b | 5 | 6 |""" + | params.yaml | x.b | 5 | 6 | + """ )