From 4337d1337b5aedd190627287f7e0a48000396902 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Mazzucotelli?= Date: Thu, 13 Jun 2024 01:45:28 +0200 Subject: [PATCH] fix: Don't render anything when code block output is empty By empty, we mean absolutely empty. A single blank character will be (converted and) rendered. Issue-17: https://github.com/pawamoy/markdown-exec/issues/17 --- src/markdown_exec/formatters/base.py | 3 +++ tests/test_base_formatter.py | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/markdown_exec/formatters/base.py b/src/markdown_exec/formatters/base.py index 03e07a0..ab37b39 100644 --- a/src/markdown_exec/formatters/base.py +++ b/src/markdown_exec/formatters/base.py @@ -105,6 +105,9 @@ def base_format( logger.warning(log_message) return markdown.convert(str(error)) + if not output: + return Markup() + if html: if source: placeholder = str(uuid4()) diff --git a/tests/test_base_formatter.py b/tests/test_base_formatter.py index ba439cf..521b5d8 100644 --- a/tests/test_base_formatter.py +++ b/tests/test_base_formatter.py @@ -58,3 +58,18 @@ def test_render_console_plus_ansi_result(md: Markdown) -> None: result="ansi", ) assert "ansi" in markup + + +def test_dont_render_anything_if_output_is_empty(md: Markdown) -> None: + """Assert nothing is rendered if output is empty. + + Parameters: + md: A Markdown instance (fixture). + """ + markup = base_format( + language="bash", + run=lambda code, **_: "", + code="whatever", + md=md, + ) + assert not markup