Add tests for log markup and highlighting

This commit is contained in:
Joe Halliwell 2021-12-12 11:05:49 +00:00
parent 86e0887b1d
commit 64b921727d
1 changed files with 40 additions and 0 deletions

View File

@ -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)