Issue #10329: The trace module writes reports using the input Python script
encoding, instead of the locale encoding. Patch written by Alexander Belopolsky.
This commit is contained in:
parent
bb4f218050
commit
64bc3b28a3
|
@ -330,9 +330,10 @@ class CoverageResults:
|
||||||
|
|
||||||
source = linecache.getlines(filename)
|
source = linecache.getlines(filename)
|
||||||
coverpath = os.path.join(dir, modulename + ".cover")
|
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,
|
n_hits, n_lines = self.write_results_file(coverpath, source,
|
||||||
lnotab, count)
|
lnotab, count, encoding)
|
||||||
|
|
||||||
if summary and n_lines:
|
if summary and n_lines:
|
||||||
percent = int(100 * n_hits / n_lines)
|
percent = int(100 * n_hits / n_lines)
|
||||||
sums[modulename] = n_lines, percent, modulename, filename
|
sums[modulename] = n_lines, percent, modulename, filename
|
||||||
|
@ -351,11 +352,11 @@ class CoverageResults:
|
||||||
except IOError as err:
|
except IOError as err:
|
||||||
print("Can't save counts files because %s" % err, file=sys.stderr)
|
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."""
|
"""Return a coverage results file in path."""
|
||||||
|
|
||||||
try:
|
try:
|
||||||
outfile = open(path, "w")
|
outfile = open(path, "w", encoding=encoding)
|
||||||
except IOError as err:
|
except IOError as err:
|
||||||
print(("trace: Could not open %r for writing: %s"
|
print(("trace: Could not open %r for writing: %s"
|
||||||
"- skipping" % (path, err)), file=sys.stderr)
|
"- skipping" % (path, err)), file=sys.stderr)
|
||||||
|
|
|
@ -65,6 +65,10 @@ Core and Builtins
|
||||||
Library
|
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
|
- Issue #10126: Fix distutils' test_build when Python was built with
|
||||||
--enable-shared.
|
--enable-shared.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue