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
commitc2636f945f5c46597f71479ac8eae3a141110cf5 (patch)
tree5c048b46eb7917f004dcf507550b3b989761f5e4 /coverage/data.py
parent507d94b272fb73fac476fa6cdc6b023f5c88bc79 (diff)
downloadpython-coveragepy-git-c2636f945f5c46597f71479ac8eae3a141110cf5.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 67b74d07..ecfb86b9 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()