summaryrefslogtreecommitdiff
path: root/coverage/data.py
diff options
context:
space:
mode:
authorlahwran <none@none>2012-11-12 10:36:41 -0700
committerlahwran <none@none>2012-11-12 10:36:41 -0700
commit46eda022693707b880d5af8a08e53134275cd0a4 (patch)
treec43be81801e50e7fb0d344b7cf8cbd109d4c7863 /coverage/data.py
parentd06463e80c41ef52153e8d500487aa2b07733dda (diff)
downloadpython-coveragepy-git-46eda022693707b880d5af8a08e53134275cd0a4.tar.gz
Fix race condition removing .coverage on init
Diffstat (limited to 'coverage/data.py')
-rw-r--r--coverage/data.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/coverage/data.py b/coverage/data.py
index 4a79807d..b7a08420 100644
--- a/coverage/data.py
+++ b/coverage/data.py
@@ -1,6 +1,7 @@
"""Coverage data for Coverage."""
import os
+import errno
from coverage.backward import pickle, sorted # pylint: disable=W0622
from coverage.files import PathAliases
@@ -89,8 +90,12 @@ class CoverageData(object):
def erase(self):
"""Erase the data, both in this object, and from its file storage."""
if self.use_file:
- if self.filename and os.path.exists(self.filename):
- os.remove(self.filename)
+ if self.filename:
+ try:
+ os.remove(self.filename)
+ except OSError as e:
+ if e.errno != errno.ENOENT:
+ raise
self.lines = {}
self.arcs = {}