Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Victor committed Jun 29, 2018
1 parent a48c47b commit 342f2cd
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/_pytest/logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,9 @@ def __init__(self, config):
config, "log_file_date_format", "log_date_format"
)
# Each pytest runtests session will write to a clean logfile
self.log_file_handler = logging.FileHandler(log_file, mode="w")
self.log_file_handler = logging.FileHandler(
log_file, mode="w", encoding="UTF-8"
)
log_file_formatter = logging.Formatter(
log_file_format, datefmt=log_file_date_format
)
Expand Down
34 changes: 34 additions & 0 deletions testing/logging/test_reporting.py
Original file line number Diff line number Diff line change
Expand Up @@ -827,6 +827,40 @@ def test_log_file(request):
assert "This log message won't be shown" not in contents


def test_log_file_unicode(testdir):
log_file = testdir.tmpdir.join("pytest.log").strpath

testdir.makeini(
"""
[pytest]
log_file={}
log_file_level = INFO
""".format(
log_file
)
)
testdir.makepyfile(
"""
import logging
def test_log_file():
logging.getLogger('catchlog').info("Normal message")
logging.getLogger('catchlog').info("\u251c")
logging.getLogger('catchlog').info("Another normal message")
"""
)

result = testdir.runpytest()

# make sure that that we get a '0' exit code for the testsuite
assert result.ret == 0
assert os.path.isfile(log_file)
with open(log_file, encoding="utf-8") as rfh:
contents = rfh.read()
assert "Normal message" in contents
assert "\u251c" in contents
assert "Another normal message" in contents


@pytest.mark.parametrize("has_capture_manager", [True, False])
def test_live_logging_suspends_capture(has_capture_manager, request):
"""Test that capture manager is suspended when we emitting messages for live logging.
Expand Down

0 comments on commit 342f2cd

Please sign in to comment.