summaryrefslogtreecommitdiff
path: root/coverage/data.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2014-07-04 22:15:20 -0400
committerNed Batchelder <ned@nedbatchelder.com>2014-07-04 22:15:20 -0400
commit5f7071ecf209b45491892fff3d3cb4f1026c9b49 (patch)
tree36cd58cd35cd54eaaebe15c5d33acdba3912d324 /coverage/data.py
parent8165a5c9c3af1523a629b1ffa3e528f62ed04947 (diff)
downloadpython-coveragepy-5f7071ecf209b45491892fff3d3cb4f1026c9b49.tar.gz
Crazy-ugly start to extensions for Django and Mako
Diffstat (limited to 'coverage/data.py')
-rw-r--r--coverage/data.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/coverage/data.py b/coverage/data.py
index 042b640..b78c931 100644
--- a/coverage/data.py
+++ b/coverage/data.py
@@ -21,6 +21,11 @@ class CoverageData(object):
* arcs: a dict mapping filenames to sorted lists of line number pairs:
{ 'file1': [(17,23), (17,25), (25,26)], ... }
+ * extensions: a dict mapping filenames to extension names:
+ { 'file1': "django.coverage", ... }
+ # TODO: how to handle the difference between a extension module
+ # name, and the class in the module?
+
"""
def __init__(self, basename=None, collector=None, debug=None):
@@ -64,6 +69,14 @@ class CoverageData(object):
#
self.arcs = {}
+ # A map from canonical source file name to an extension module name:
+ #
+ # {
+ # 'filename1.py': 'django.coverage',
+ # ...
+ # }
+ self.extensions = {}
+
def usefile(self, use_file=True):
"""Set whether or not to use a disk file for data."""
self.use_file = use_file
@@ -110,6 +123,9 @@ class CoverageData(object):
(f, sorted(amap.keys())) for f, amap in iitems(self.arcs)
)
+ def extension_data(self):
+ return self.extensions
+
def write_file(self, filename):
"""Write the coverage data to `filename`."""
@@ -213,6 +229,9 @@ class CoverageData(object):
for filename, arcs in iitems(arc_data):
self.arcs.setdefault(filename, {}).update(arcs)
+ def add_extension_data(self, extension_data):
+ self.extensions.update(extension_data)
+
def touch_file(self, filename):
"""Ensure that `filename` appears in the data, empty if needed."""
self.lines.setdefault(filename, {})