diff options
Diffstat (limited to 'coverage/data.py')
-rw-r--r-- | coverage/data.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/coverage/data.py b/coverage/data.py index 3eb51bf3..2f1cf442 100644 --- a/coverage/data.py +++ b/coverage/data.py @@ -200,13 +200,21 @@ class CoverageData(object): __bool__ = __nonzero__ + def _open_for_reading(self, filename): + """Open a file appropriately for reading data.""" + return open(filename, "r") + + def _read_raw_data(self, file_obj): + """Read the raw data from a file object.""" + return json.load(file_obj) + def read(self, file_obj): """Read the coverage data from the given file object. Should only be used on an empty CoverageData object. """ - data = json.load(file_obj) + data = self._read_raw_data(file_obj) self._lines = data.get('lines', {}) self._arcs = dict( @@ -220,7 +228,7 @@ class CoverageData(object): if self._debug and self._debug.should('dataio'): self._debug.write("Reading data from %r" % (filename,)) try: - with open(filename, "r") as f: + with self._open_for_reading(filename) as f: self.read(f) except Exception as exc: raise CoverageException( @@ -229,6 +237,11 @@ class CoverageData(object): ) ) + def _read_raw_data_file(self, filename): + """Read the raw data from a file, for debugging.""" + with self._open_for_reading(filename) as f: + return self._read_raw_data(f) + ## ## Writing data ## |