summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coverage/control.py32
-rw-r--r--coverage/python.py33
2 files changed, 33 insertions, 32 deletions
diff --git a/coverage/control.py b/coverage/control.py
index d968b182..91600aef 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -360,38 +360,6 @@ class Coverage(object):
morf_filename = PythonFileReporter(morf, self).filename
return os.path.split(morf_filename)[0]
- def _source_for_file(self, filename):
- """Return the source file for `filename`.
-
- Given a file name being traced, return the best guess as to the source
- file to attribute it to.
-
- """
- if filename.endswith(".py"):
- # .py files are themselves source files.
- return filename
-
- elif filename.endswith((".pyc", ".pyo")):
- # Bytecode files probably have source files near them.
- py_filename = filename[:-1]
- if os.path.exists(py_filename):
- # Found a .py file, use that.
- return py_filename
- if env.WINDOWS:
- # On Windows, it could be a .pyw file.
- pyw_filename = py_filename + "w"
- if os.path.exists(pyw_filename):
- return pyw_filename
- # Didn't find source, but it's probably the .py file we want.
- return py_filename
-
- elif filename.endswith("$py.class"):
- # Jython is easy to guess.
- return filename[:-9] + ".py"
-
- # No idea, just use the file name as-is.
- return filename
-
def _name_for_module(self, module_globals, filename):
"""Get the name of the module for a set of globals and file name.
diff --git a/coverage/python.py b/coverage/python.py
index c3ca0e1e..ada21e67 100644
--- a/coverage/python.py
+++ b/coverage/python.py
@@ -91,6 +91,39 @@ def get_zip_bytes(filename):
return None
+def _source_for_file(self, filename):
+ """Return the source file for `filename`.
+
+ Given a file name being traced, return the best guess as to the source
+ file to attribute it to.
+
+ """
+ if filename.endswith(".py"):
+ # .py files are themselves source files.
+ return filename
+
+ elif filename.endswith((".pyc", ".pyo")):
+ # Bytecode files probably have source files near them.
+ py_filename = filename[:-1]
+ if os.path.exists(py_filename):
+ # Found a .py file, use that.
+ return py_filename
+ if env.WINDOWS:
+ # On Windows, it could be a .pyw file.
+ pyw_filename = py_filename + "w"
+ if os.path.exists(pyw_filename):
+ return pyw_filename
+ # Didn't find source, but it's probably the .py file we want.
+ return py_filename
+
+ elif filename.endswith("$py.class"):
+ # Jython is easy to guess.
+ return filename[:-9] + ".py"
+
+ # No idea, just use the file name as-is.
+ return filename
+
+
class PythonFileReporter(FileReporter):
"""Report support for a Python file."""