diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2009-09-14 23:46:30 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2009-09-14 23:46:30 -0400 |
commit | a9ba8f4278072e87d1303493cc67fc1a6b3c876a (patch) | |
tree | f7492db057ae94ebc058d4d8d1e7d4dbdc38b0d3 /coverage/data.py | |
parent | a6ed04580549e284dee3645724da6b7b0c4a8ac6 (diff) | |
download | python-coveragepy-git-a9ba8f4278072e87d1303493cc67fc1a6b3c876a.tar.gz |
Capture the full path to the data file when execution starts. Fixes issue 24.
Diffstat (limited to 'coverage/data.py')
-rw-r--r-- | coverage/data.py | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/coverage/data.py b/coverage/data.py index eb8e776d..2fb635ee 100644 --- a/coverage/data.py +++ b/coverage/data.py @@ -37,12 +37,17 @@ class CoverageData: `collector` is a string describing the coverage measurement software. """ - self.basename = basename self.collector = collector - self.suffix = suffix self.use_file = True - self.filename = None + + # Construct the filename that will be used for data file storage, if we + # ever do any file storage. + self.filename = (basename or + os.environ.get(self.filename_env, self.filename_default)) + if suffix: + self.filename += suffix + self.filename = os.path.abspath(self.filename) # A map from canonical Python source file name to a dictionary in # which there's an entry for each line number that has been @@ -59,34 +64,21 @@ class CoverageData: """Set whether or not to use a disk file for data.""" self.use_file = use_file - def _make_filename(self): - """Construct the filename that will be used for data file storage.""" - assert self.use_file - if not self.filename: - self.filename = (self.basename or - os.environ.get(self.filename_env, self.filename_default)) - - if self.suffix: - self.filename += self.suffix - def read(self): """Read coverage data from the coverage data file (if it exists).""" data = {} if self.use_file: - self._make_filename() data = self._read_file(self.filename) self.lines = data def write(self): """Write the collected coverage data to a file.""" if self.use_file: - self._make_filename() self.write_file(self.filename) def erase(self): """Erase the data, both in this object, and from its file storage.""" if self.use_file: - self._make_filename() if self.filename and os.path.exists(self.filename): os.remove(self.filename) self.lines = {} @@ -143,7 +135,6 @@ class CoverageData: """ Treat self.filename as a file prefix, and combine the data from all of the files starting with that prefix. """ - self._make_filename() data_dir, local = os.path.split(self.filename) for f in os.listdir(data_dir or '.'): if f.startswith(local): |