summaryrefslogtreecommitdiff
path: root/coverage/data.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-07-23 09:44:54 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-07-23 09:44:54 -0400
commitb56098f18c5a80b17bd64f400e9db09f359adb3d (patch)
tree66e522f7fdd1f3fb81079c43e26c91b3e71e13d7 /coverage/data.py
parent924e1513ada67af1db81b5c80b2cfb5f72a0cc75 (diff)
downloadpython-coveragepy-b56098f18c5a80b17bd64f400e9db09f359adb3d.tar.gz
The data file now has a warning in it, and is not pure JSON.
Diffstat (limited to 'coverage/data.py')
-rw-r--r--coverage/data.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/coverage/data.py b/coverage/data.py
index 71f915d..26fee48 100644
--- a/coverage/data.py
+++ b/coverage/data.py
@@ -232,10 +232,16 @@ class CoverageData(object):
)
)
+ GO_AWAY = "!coverage.py: This is a private format, don't read it directly!"
+
@classmethod
def _open_for_reading(cls, filename):
"""Open a file appropriately for reading data."""
- return open(filename, "r")
+ f = open(filename, "r")
+ go_away = f.read(len(cls.GO_AWAY))
+ if go_away != cls.GO_AWAY:
+ raise CoverageException("Doesn't seem to be a coverage.py data file")
+ return f
@classmethod
def _read_raw_data(cls, file_obj):
@@ -331,6 +337,7 @@ class CoverageData(object):
file_data['plugins'] = self._plugins
# Write the data to the file.
+ file_obj.write(self.GO_AWAY)
json.dump(file_data, file_obj)
def write_file(self, filename):