summaryrefslogtreecommitdiff
path: root/coverage
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2019-07-09 14:23:38 -0400
committerNed Batchelder <ned@nedbatchelder.com>2019-07-09 14:23:38 -0400
commitfb2c6262c4964eba2d90a1ddd999fe5bc49827b4 (patch)
tree570cd77b933bcbb83d4fe20fd87ba660519d3bbe /coverage
parente16eb5245857db6574a0c0fdcf76879708a316c4 (diff)
downloadpython-coveragepy-git-nedbat/close-data.tar.gz
Make Analysis a context manager to properly close sqlite filesnedbat/close-data
Diffstat (limited to 'coverage')
-rw-r--r--coverage/control.py16
-rw-r--r--coverage/results.py6
2 files changed, 14 insertions, 8 deletions
diff --git a/coverage/control.py b/coverage/control.py
index fbf4455c..9ee6e4b4 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -683,14 +683,14 @@ class Coverage(object):
coverage data.
"""
- analysis = self._analyze(morf)
- return (
- analysis.filename,
- sorted(analysis.statements),
- sorted(analysis.excluded),
- sorted(analysis.missing),
- analysis.missing_formatted(),
- )
+ with self._analyze(morf) as analysis:
+ return (
+ analysis.filename,
+ sorted(analysis.statements),
+ sorted(analysis.excluded),
+ sorted(analysis.missing),
+ analysis.missing_formatted(),
+ )
def _analyze(self, it):
"""Analyze a single morf or code unit.
diff --git a/coverage/results.py b/coverage/results.py
index ba335209..83cdbdf9 100644
--- a/coverage/results.py
+++ b/coverage/results.py
@@ -49,6 +49,12 @@ class Analysis(object):
n_missing_branches=n_missing_branches,
)
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_value, traceback):
+ self.data.close()
+
def missing_formatted(self, branches=False):
"""The missing line numbers, formatted nicely.