summaryrefslogtreecommitdiff
path: root/coverage/control.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-07-02 07:18:01 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-07-02 07:18:01 -0400
commit8041638970a78ae67f776846d59f6cb8ea158a17 (patch)
treeb32a2bd4bb8d0351fdc1b3622e82b9b52a13de9d /coverage/control.py
parent7593dd4e87b39fb8d1b367c12e83f1ed5ccf41c9 (diff)
downloadpython-coveragepy-git-8041638970a78ae67f776846d59f6cb8ea158a17.tar.gz
Exec'ing code gives the wrong filename. A warning now, while we figure it out. Part of #380.
Diffstat (limited to 'coverage/control.py')
-rw-r--r--coverage/control.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/coverage/control.py b/coverage/control.py
index 9ac091d7..48c0c1ca 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -435,6 +435,7 @@ class Coverage(object):
Returns a FileDisposition object.
"""
+ original_filename = filename
disp = FileDisposition(filename)
def nope(disp, reason):
@@ -452,6 +453,10 @@ class Coverage(object):
dunder_file = frame.f_globals.get('__file__')
if dunder_file:
filename = self._source_for_file(dunder_file)
+ if os.path.basename(original_filename) != os.path.basename(filename):
+ # Files shouldn't be renamed when moved. This happens when
+ # exec'ing code, not sure why yet.
+ self._warn("File was renamed?: %r became %r" % (original_filename, filename))
if not filename:
# Empty string is pretty useless.