mirror of https://github.com/Textualize/rich.git
test fix
This commit is contained in:
parent
911d305fe7
commit
93f917493c
|
@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [2.2.2] - Unreleased
|
||||
|
||||
### Changed
|
||||
|
||||
- Extra paramters added to RichLogging
|
||||
|
||||
## [2.2.1] - 2020-06-14
|
||||
|
||||
### Changed
|
||||
|
|
|
@ -2,11 +2,12 @@ import logging
|
|||
from datetime import datetime
|
||||
from logging import Handler, LogRecord
|
||||
from pathlib import Path
|
||||
from typing import List
|
||||
|
||||
from . import get_console
|
||||
from rich._log_render import LogRender
|
||||
from rich.console import Console
|
||||
from rich.highlighter import ReprHighlighter
|
||||
from rich.highlighter import Highlighter, ReprHighlighter
|
||||
from rich.markup import render
|
||||
from rich.text import Text
|
||||
|
||||
|
@ -24,11 +25,18 @@ class RichHandler(Handler):
|
|||
|
||||
KEYWORDS = ["GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS", "TRACE", "PATCH"]
|
||||
|
||||
def __init__(self, level: int = logging.NOTSET, console: Console = None) -> None:
|
||||
def __init__(
|
||||
self,
|
||||
level: int = logging.NOTSET,
|
||||
console: Console = None,
|
||||
highlighter: Highlighter = None,
|
||||
keywords: List[str] = None,
|
||||
) -> None:
|
||||
super().__init__(level=level)
|
||||
self.console = console or get_console()
|
||||
self.highlighter = ReprHighlighter()
|
||||
self.highlighter = highlighter or ReprHighlighter()
|
||||
self._log_render = LogRender(show_level=True)
|
||||
self.keywords = self.KEYWORDS if keywords is None else keywords
|
||||
|
||||
def emit(self, record: LogRecord) -> None:
|
||||
"""Invoked by logging."""
|
||||
|
@ -41,7 +49,7 @@ class RichHandler(Handler):
|
|||
level = Text()
|
||||
level.append(record.levelname, log_style)
|
||||
message_text = Text(message)
|
||||
message_text.highlight_words(self.KEYWORDS, "logging.keyword")
|
||||
message_text.highlight_words(self.keywords, "logging.keyword")
|
||||
message_text = self.highlighter(message_text)
|
||||
|
||||
self.console.print(
|
||||
|
|
|
@ -5,7 +5,9 @@ from rich.console import Console
|
|||
from rich.logging import RichHandler
|
||||
|
||||
handler = RichHandler(
|
||||
console=Console(file=io.StringIO(), force_terminal=True, width=80)
|
||||
console=Console(
|
||||
file=io.StringIO(), force_terminal=True, width=80, color_system="truecolor"
|
||||
)
|
||||
)
|
||||
logging.basicConfig(
|
||||
level="NOTSET", format="%(message)s", datefmt="[DATE]", handlers=[handler]
|
||||
|
@ -22,7 +24,7 @@ def make_log():
|
|||
def test_log():
|
||||
render = make_log()
|
||||
print(repr(render))
|
||||
expected = "\x1b[2;36m[DATE]\x1b[0m\x1b[2;36m \x1b[0m\x1b[32mDEBUG\x1b[0m foo \x1b]8;id=3292318898;file:///Users/willmcgugan/projects/rich/tests/test_logging.py\x1b\\\x1b[2mtest_logging.py\x1b[0m\x1b]8;;\x1b\\\x1b[2m:17\x1b[0m\n"
|
||||
expected = "\x1b[2;36m[DATE]\x1b[0m\x1b[2;36m \x1b[0m\x1b[32mDEBUG\x1b[0m foo \x1b]8;id=3292318898;file:///Users/willmcgugan/projects/rich/tests/test_logging.py\x1b\\\x1b[2mtest_logging.py\x1b[0m\x1b]8;;\x1b\\\x1b[2m:19\x1b[0m\n"
|
||||
assert render == expected
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue