summaryrefslogtreecommitdiff
path: root/coverage
diff options
context:
space:
mode:
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.