Use same code for setting up cli/non-cli formatter
A method _create_formatter was introduced that is used for both the log_cli_formatter and the log_formatter. Consequences of this commit are: * Captured logs that are output for each failing test are formatted using the ColoredLevelFromatter. * The formatter used for writing to a file still uses the non-colored logging.Formatter class.
This commit is contained in:
@@ -1084,3 +1084,48 @@ def test_log_set_path(testdir):
|
||||
with open(os.path.join(report_dir_base, "test_second"), "r") as rfh:
|
||||
content = rfh.read()
|
||||
assert "message from test 2" in content
|
||||
|
||||
|
||||
def test_colored_captured_log(testdir):
|
||||
"""
|
||||
Test that the level names of captured log messages of a failing test are
|
||||
colored.
|
||||
"""
|
||||
testdir.makepyfile(
|
||||
"""
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def test_foo():
|
||||
logger.info('text going to logger from call')
|
||||
assert False
|
||||
"""
|
||||
)
|
||||
result = testdir.runpytest("--log-level=INFO", "--color=yes")
|
||||
assert result.ret == 1
|
||||
result.stdout.fnmatch_lines(
|
||||
[
|
||||
"*-- Captured log call --*",
|
||||
"\x1b[32mINFO \x1b[0m*text going to logger from call",
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
def test_colored_ansi_esc_caplogtext(testdir):
|
||||
"""
|
||||
Make sure that caplog.text does not contain ANSI escape sequences.
|
||||
"""
|
||||
testdir.makepyfile(
|
||||
"""
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def test_foo(caplog):
|
||||
logger.info('text going to logger from call')
|
||||
assert '\x1b' not in caplog.text
|
||||
"""
|
||||
)
|
||||
result = testdir.runpytest("--log-level=INFO", "--color=yes")
|
||||
assert result.ret == 0
|
||||
|
||||
Reference in New Issue
Block a user