From 64b921727d4b47ac973f3cdb19ce1baba5d55b46 Mon Sep 17 00:00:00 2001 From: Joe Halliwell Date: Sun, 12 Dec 2021 11:05:49 +0000 Subject: [PATCH] Add tests for log markup and highlighting --- tests/test_logging.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/test_logging.py b/tests/test_logging.py index a1acc002..a7353968 100644 --- a/tests/test_logging.py +++ b/tests/test_logging.py @@ -122,6 +122,46 @@ def test_stderr_and_stdout_are_none(monkeypatch): assert "message" in actual_record.msg +def test_markup_and_highlight(): + console = Console( + file=io.StringIO(), + force_terminal=True, + width=140, + color_system="truecolor", + _environ={}, + ) + handler = RichHandler(console=console) + + # Check defaults are as expected + assert handler.highlighter + assert not handler.markup + + formatter = logging.Formatter("FORMATTER %(message)s %(asctime)s") + handler.setFormatter(formatter) + log.addHandler(handler) + + log_message = "foo 3.141 127.0.0.1 [red]alert[/red]" + + log.error(log_message) + render_fancy = handler.console.file.getvalue() + assert "FORMATTER" in render_fancy + assert log_message not in render_fancy + assert "red" in render_fancy + + handler.console.file = io.StringIO() + log.error(log_message, extra={"markup": True}) + render_markup = handler.console.file.getvalue() + assert "FORMATTER" in render_markup + assert log_message not in render_markup + assert "red" not in render_markup + + handler.console.file = io.StringIO() + log.error(log_message, extra={"highlighter": None}) + render_plain = handler.console.file.getvalue() + assert "FORMATTER" in render_plain + assert log_message in render_plain + + if __name__ == "__main__": render = make_log() print(render)