Kaydet (Commit) 64bc3b28 authored tarafından Victor Stinner's avatar Victor Stinner

Issue #10329: The trace module writes reports using the input Python script

encoding, instead of the locale encoding. Patch written by Alexander
Belopolsky.
üst bb4f2180
......@@ -330,9 +330,10 @@ class CoverageResults:
source = linecache.getlines(filename)
coverpath = os.path.join(dir, modulename + ".cover")
with open(filename, 'rb') as fp:
encoding, _ = tokenize.detect_encoding(fp.readline)
n_hits, n_lines = self.write_results_file(coverpath, source,
lnotab, count)
lnotab, count, encoding)
if summary and n_lines:
percent = int(100 * n_hits / n_lines)
sums[modulename] = n_lines, percent, modulename, filename
......@@ -351,11 +352,11 @@ class CoverageResults:
except IOError as err:
print("Can't save counts files because %s" % err, file=sys.stderr)
def write_results_file(self, path, lines, lnotab, lines_hit):
def write_results_file(self, path, lines, lnotab, lines_hit, encoding=None):
"""Return a coverage results file in path."""
try:
outfile = open(path, "w")
outfile = open(path, "w", encoding=encoding)
except IOError as err:
print(("trace: Could not open %r for writing: %s"
"- skipping" % (path, err)), file=sys.stderr)
......
......@@ -65,6 +65,10 @@ Core and Builtins
Library
-------
- Issue #10329: The trace module writes reports using the input Python script
encoding, instead of the locale encoding. Patch written by Alexander
Belopolsky.
- Issue #10126: Fix distutils' test_build when Python was built with
--enable-shared.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment