diff options
Diffstat (limited to 'coverage')
-rw-r--r-- | coverage/control.py | 16 | ||||
-rw-r--r-- | coverage/results.py | 6 |
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. |