Skip to content

Commit

Permalink
Merge pull request #8641 from rahul-kumi/fix/8548
Browse files Browse the repository at this point in the history
add support for precision bit in LEVEL_NAME_FMT regex
  • Loading branch information
Zac-HD committed May 7, 2021
2 parents 886fd70 + 9e11d64 commit 3ae0103
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 4 deletions.
1 change: 1 addition & 0 deletions changelog/8548.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Introduce fix to handle precision width in ``log-cli-format`` in turn to fix output coloring for certain formats.
2 changes: 1 addition & 1 deletion src/_pytest/logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ class ColoredLevelFormatter(logging.Formatter):
logging.DEBUG: {"purple"},
logging.NOTSET: set(),
}
LEVELNAME_FMT_REGEX = re.compile(r"%\(levelname\)([+-.]?\d*s)")
LEVELNAME_FMT_REGEX = re.compile(r"%\(levelname\)([+-.]?\d*(?:\.\d+)?s)")

def __init__(self, terminalwriter: TerminalWriter, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
Expand Down
29 changes: 26 additions & 3 deletions testing/logging/test_formatter.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,32 @@ def test_coloredlogformatter() -> None:
exc_info=None,
)

class ColorConfig:
class option:
pass
tw = TerminalWriter()
tw.hasmarkup = True
formatter = ColoredLevelFormatter(tw, logfmt)
output = formatter.format(record)
assert output == (
"dummypath 10 \x1b[32mINFO \x1b[0m Test Message"
)

tw.hasmarkup = False
formatter = ColoredLevelFormatter(tw, logfmt)
output = formatter.format(record)
assert output == ("dummypath 10 INFO Test Message")


def test_coloredlogformatter_with_width_precision() -> None:
logfmt = "%(filename)-25s %(lineno)4d %(levelname)-8.8s %(message)s"

record = logging.LogRecord(
name="dummy",
level=logging.INFO,
pathname="dummypath",
lineno=10,
msg="Test Message",
args=(),
exc_info=None,
)

tw = TerminalWriter()
tw.hasmarkup = True
Expand Down

0 comments on commit 3ae0103

Please sign in to comment.