summaryrefslogtreecommitdiff
path: root/coverage/data.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2017-03-28 06:21:34 -0400
committerNed Batchelder <ned@nedbatchelder.com>2017-03-28 06:21:34 -0400
commitb536b6c77c943eb95a0fe27705d842070027b407 (patch)
treedcd9fc433cac970057eac5e6f5a0ff39443e706a /coverage/data.py
parent778da6cf5ef2a5ed2b2748b2bed215f3ab68995d (diff)
downloadpython-coveragepy-b536b6c77c943eb95a0fe27705d842070027b407.tar.gz
Allow plugins to report files they haven't executed.
By Emil Madsen, from: https://github.com/nedbat/coveragepy/pull/28
Diffstat (limited to 'coverage/data.py')
-rw-r--r--coverage/data.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/coverage/data.py b/coverage/data.py
index 67b74d0..ecfb86b 100644
--- a/coverage/data.py
+++ b/coverage/data.py
@@ -416,8 +416,12 @@ class CoverageData(object):
self._runs[0].update(kwargs)
self._validate()
- def touch_file(self, filename):
- """Ensure that `filename` appears in the data, empty if needed."""
+ def touch_file(self, filename, plugin_name=""):
+ """Ensure that `filename` appears in the data, empty if needed.
+
+ `plugin_name` is the name of the plugin resposible for this file. It is used
+ to associate the right filereporter, etc.
+ """
if self._debug and self._debug.should('dataop'):
self._debug.write("Touching %r" % (filename,))
if not self._has_arcs() and not self._has_lines():
@@ -428,6 +432,9 @@ class CoverageData(object):
else:
where = self._lines
where.setdefault(filename, [])
+ if plugin_name:
+ # Set the tracer for this file
+ self._file_tracers[filename] = plugin_name
self._validate()