summaryrefslogtreecommitdiff
path: root/coverage/data.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-07-30 21:54:39 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-07-30 21:54:39 -0400
commitd6527657397d0499ce622a82ac04ddceddcbeb93 (patch)
tree4de471c7a0737ea0208f4998598eb228c46b97c7 /coverage/data.py
parent5eea5dbb59adc5f384d443fb702060e21646adbc (diff)
downloadpython-coveragepy-git-d6527657397d0499ce622a82ac04ddceddcbeb93.tar.gz
Erasing in parallel mode now deletes all the data files. #262
Diffstat (limited to 'coverage/data.py')
-rw-r--r--coverage/data.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/coverage/data.py b/coverage/data.py
index 4a5ae27a..0fa2c878 100644
--- a/coverage/data.py
+++ b/coverage/data.py
@@ -6,6 +6,7 @@
import glob
import json
import os
+import os.path
import random
import socket
@@ -553,9 +554,20 @@ class CoverageDataFiles(object):
# Construct the filename that will be used for data storage.
self.filename = os.path.abspath(basename or ".coverage")
- def erase(self):
- """Erase the data from the file storage."""
+ def erase(self, parallel=False):
+ """Erase the data from the file storage.
+
+ If `parallel` is true, then also deletes data files created from the
+ basename by parallel-mode.
+
+ """
file_be_gone(self.filename)
+ if parallel:
+ data_dir, local = os.path.split(self.filename)
+ localdot = local + '.*'
+ pattern = os.path.join(os.path.abspath(data_dir), localdot)
+ for filename in glob.glob(pattern):
+ file_be_gone(filename)
def read(self, data):
"""Read the coverage data."""
@@ -630,7 +642,7 @@ class CoverageDataFiles(object):
new_data = CoverageData()
new_data.read_file(f)
data.update(new_data, aliases=aliases)
- os.remove(f)
+ file_be_gone(f)
def debug_main(args):