diff options
Diffstat (limited to 'coverage/python.py')
-rw-r--r-- | coverage/python.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/coverage/python.py b/coverage/python.py index 71b50f0..fe32150 100644 --- a/coverage/python.py +++ b/coverage/python.py @@ -4,6 +4,7 @@ """Python source expertise for coverage.py""" import os.path +import sys import zipimport from coverage import env, files @@ -95,6 +96,9 @@ class PythonFileReporter(FileReporter): else: filename = morf + if env.PY2 and isinstance(filename, str): + filename = filename.decode(sys.getfilesystemencoding()) + # .pyc files should always refer to a .py instead. if filename.endswith(('.pyc', '.pyo')): filename = filename[:-1] @@ -106,6 +110,8 @@ class PythonFileReporter(FileReporter): if hasattr(morf, '__name__'): name = morf.__name__ name = name.replace(".", os.sep) + ".py" + if isinstance(name, bytes): + name = name.decode(sys.getfilesystemencoding()) else: name = files.relative_filename(filename) self.relname = name @@ -115,6 +121,7 @@ class PythonFileReporter(FileReporter): self._statements = None self._excluded = None + @contract(returns='unicode') def relative_filename(self): return self.relname |