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/),
|
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).
|
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
|
## [2.2.1] - 2020-06-14
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
|
@ -2,11 +2,12 @@ import logging
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from logging import Handler, LogRecord
|
from logging import Handler, LogRecord
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from typing import List
|
||||||
|
|
||||||
from . import get_console
|
from . import get_console
|
||||||
from rich._log_render import LogRender
|
from rich._log_render import LogRender
|
||||||
from rich.console import Console
|
from rich.console import Console
|
||||||
from rich.highlighter import ReprHighlighter
|
from rich.highlighter import Highlighter, ReprHighlighter
|
||||||
from rich.markup import render
|
from rich.markup import render
|
||||||
from rich.text import Text
|
from rich.text import Text
|
||||||
|
|
||||||
|
@ -24,11 +25,18 @@ class RichHandler(Handler):
|
||||||
|
|
||||||
KEYWORDS = ["GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS", "TRACE", "PATCH"]
|
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)
|
super().__init__(level=level)
|
||||||
self.console = console or get_console()
|
self.console = console or get_console()
|
||||||
self.highlighter = ReprHighlighter()
|
self.highlighter = highlighter or ReprHighlighter()
|
||||||
self._log_render = LogRender(show_level=True)
|
self._log_render = LogRender(show_level=True)
|
||||||
|
self.keywords = self.KEYWORDS if keywords is None else keywords
|
||||||
|
|
||||||
def emit(self, record: LogRecord) -> None:
|
def emit(self, record: LogRecord) -> None:
|
||||||
"""Invoked by logging."""
|
"""Invoked by logging."""
|
||||||
|
@ -41,7 +49,7 @@ class RichHandler(Handler):
|
||||||
level = Text()
|
level = Text()
|
||||||
level.append(record.levelname, log_style)
|
level.append(record.levelname, log_style)
|
||||||
message_text = Text(message)
|
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)
|
message_text = self.highlighter(message_text)
|
||||||
|
|
||||||
self.console.print(
|
self.console.print(
|
||||||
|
|
|
@ -5,7 +5,9 @@ from rich.console import Console
|
||||||
from rich.logging import RichHandler
|
from rich.logging import RichHandler
|
||||||
|
|
||||||
handler = 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(
|
logging.basicConfig(
|
||||||
level="NOTSET", format="%(message)s", datefmt="[DATE]", handlers=[handler]
|
level="NOTSET", format="%(message)s", datefmt="[DATE]", handlers=[handler]
|
||||||
|
@ -22,7 +24,7 @@ def make_log():
|
||||||
def test_log():
|
def test_log():
|
||||||
render = make_log()
|
render = make_log()
|
||||||
print(repr(render))
|
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
|
assert render == expected
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue