summaryrefslogtreecommitdiff
path: root/coverage/collector.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2018-09-21 17:58:37 -0400
committerNed Batchelder <ned@nedbatchelder.com>2018-09-21 17:58:37 -0400
commit6c14ffb41a1d1b053f8df52dc37c35f730a8666c (patch)
tree197162edba02d017b3816c6b88ce1cc8fc6e9e19 /coverage/collector.py
parent85f63fef4d3b8e1b1328e3268c3eee3900e1d8a4 (diff)
parentb0f5ac245fbd8afc6b9d2ac84f732c419a712f0a (diff)
downloadpython-coveragepy-git-6c14ffb41a1d1b053f8df52dc37c35f730a8666c.tar.gz
Merge branch 'nedbat/contexts'
Diffstat (limited to 'coverage/collector.py')
-rw-r--r--coverage/collector.py22
1 files changed, 17 insertions, 5 deletions
diff --git a/coverage/collector.py b/coverage/collector.py
index fa3eaaa4..e0144979 100644
--- a/coverage/collector.py
+++ b/coverage/collector.py
@@ -99,6 +99,9 @@ class Collector(object):
self.warn = warn
self.branch = branch
self.threading = None
+ self.covdata = None
+
+ self.static_context = None
self.origin = short_stack()
@@ -160,6 +163,12 @@ class Collector(object):
def __repr__(self):
return "<Collector at 0x%x: %s>" % (id(self), self.tracer_name())
+ def use_data(self, covdata, context):
+ """Use `covdata` for recording data."""
+ self.covdata = covdata
+ self.static_context = context
+ self.covdata.set_context(self.static_context)
+
def tracer_name(self):
"""Return the class name of the tracer we're using."""
return self._trace_class.__name__
@@ -378,8 +387,11 @@ class Collector(object):
except KeyError:
return self.abs_file_cache.setdefault(key, abs_file(filename))
- def save_data(self, covdata):
- """Save the collected data to a `CoverageData`.
+ def flush_data(self):
+ """Save the collected data to our associated `CoverageData`.
+
+ Data may have also been saved along the way. This forces the
+ last of the data to be saved.
Returns True if there was data to save, False if not.
"""
@@ -406,10 +418,10 @@ class Collector(object):
return dict((self.cached_abs_file(k), v) for k, v in items)
if self.branch:
- covdata.add_arcs(abs_file_dict(self.data))
+ self.covdata.add_arcs(abs_file_dict(self.data))
else:
- covdata.add_lines(abs_file_dict(self.data))
- covdata.add_file_tracers(abs_file_dict(self.file_tracers))
+ self.covdata.add_lines(abs_file_dict(self.data))
+ self.covdata.add_file_tracers(abs_file_dict(self.file_tracers))
if self.wtw:
# Just a hack, so just hack it.