summaryrefslogtreecommitdiff
path: root/coverage/data.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-07-23 12:38:48 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-07-23 12:38:48 -0400
commit714506ea03c2f5989d7f551916c8bdb7bf9ad674 (patch)
tree09243b071376c59c6640a8749ae743f6d6da2ded /coverage/data.py
parentfe5937fa97141dc6e9cec26288abc82a05a162e2 (diff)
downloadpython-coveragepy-git-714506ea03c2f5989d7f551916c8bdb7bf9ad674.tar.gz
Be sure to close the file we opened if something goes wrong.
Diffstat (limited to 'coverage/data.py')
-rw-r--r--coverage/data.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/coverage/data.py b/coverage/data.py
index 26fee484..704a3481 100644
--- a/coverage/data.py
+++ b/coverage/data.py
@@ -238,9 +238,13 @@ class CoverageData(object):
def _open_for_reading(cls, filename):
"""Open a file appropriately for reading data."""
f = open(filename, "r")
- go_away = f.read(len(cls.GO_AWAY))
- if go_away != cls.GO_AWAY:
- raise CoverageException("Doesn't seem to be a coverage.py data file")
+ try:
+ go_away = f.read(len(cls.GO_AWAY))
+ if go_away != cls.GO_AWAY:
+ raise CoverageException("Doesn't seem to be a coverage.py data file")
+ except Exception:
+ f.close()
+ raise
return f
@classmethod