diff options
author | lahwran <none@none> | 2012-11-12 10:36:41 -0700 |
---|---|---|
committer | lahwran <none@none> | 2012-11-12 10:36:41 -0700 |
commit | 46eda022693707b880d5af8a08e53134275cd0a4 (patch) | |
tree | c43be81801e50e7fb0d344b7cf8cbd109d4c7863 /coverage/data.py | |
parent | d06463e80c41ef52153e8d500487aa2b07733dda (diff) | |
download | python-coveragepy-git-46eda022693707b880d5af8a08e53134275cd0a4.tar.gz |
Fix race condition removing .coverage on init
Diffstat (limited to 'coverage/data.py')
-rw-r--r-- | coverage/data.py | 9 |
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 = {} |