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
commit23db5d3939149ebc9281333241208f66b6df8065 (patch)
tree8481b3c1f7da54758c2ef6034c274596cb7b872f /coverage/control.py
parent1359ef961fe5722b53b256e92fd04add8115384b (diff)
downloadpython-coveragepy-23db5d3939149ebc9281333241208f66b6df8065.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 9ac091d..48c0c1c 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.