summaryrefslogtreecommitdiff
path: root/coverage/files.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-10-25 18:13:39 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-10-25 18:13:39 -0400
commitaf84377e61971aa8ae279b4611ae23dfc6567da8 (patch)
tree0a1d61161a25c9cc9a3715ad9b92f324c8976171 /coverage/files.py
parente23f267505a42513d3ff6b636dda7425ec9052f8 (diff)
downloadpython-coveragepy-af84377e61971aa8ae279b4611ae23dfc6567da8.tar.gz
Use unicode_filename more, and account for missing filesystemencoding
Diffstat (limited to 'coverage/files.py')
-rw-r--r--coverage/files.py5
1 files changed, 2 insertions, 3 deletions
diff --git a/coverage/files.py b/coverage/files.py
index 855d815..44997d1 100644
--- a/coverage/files.py
+++ b/coverage/files.py
@@ -67,8 +67,6 @@ def canonical_filename(filename):
filename = f
break
cf = abs_file(filename)
- if env.PY2 and isinstance(cf, str):
- cf = cf.decode(sys.getfilesystemencoding())
CANONICAL_FILENAME_CACHE[filename] = cf
return CANONICAL_FILENAME_CACHE[filename]
@@ -135,7 +133,8 @@ if env.PY2:
def unicode_filename(filename):
"""Return a Unicode version of `filename`."""
if isinstance(filename, str):
- filename = filename.decode(sys.getfilesystemencoding())
+ encoding = sys.getfilesystemencoding() or sys.getdefaultencoding()
+ filename = filename.decode(encoding, "replace")
return filename
else:
@contract(filename='unicode', returns='unicode')