summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2009-05-12 20:32:58 -0400
committerNed Batchelder <ned@nedbatchelder.com>2009-05-12 20:32:58 -0400
commit62df979155b10ef3f12624d196a87fc8e04a6ba4 (patch)
tree8af24048dd27cf3de89101f7c365a8c7d4e4abac
parent9782680c13cea81967dde8fa5828d86a153ce89b (diff)
downloadpython-coveragepy-git-62df979155b10ef3f12624d196a87fc8e04a6ba4.tar.gz
Less-magical coverage api: load() method loads data from data file, no more save() on process exit.
-rw-r--r--CHANGES.txt5
-rw-r--r--coverage/cmdline.py9
-rw-r--r--coverage/control.py9
3 files changed, 13 insertions, 10 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index 5321af07..e55e07a6 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -11,10 +11,15 @@ Version 3.0b3
- Added clear_exclude() and get_exclude_list() methods for programmatic
manipulation of the exclude regexes.
+- Added coverage.load() to
+
- Improved the finding of code files. For example, .pyc files that have been
installed after compiling are now located correctly. Thanks, Detlev
Offenbach.
+- Removed the automatic saving of data on process exit. If you needed this,
+ please get in touch with me so I can understand why!
+
Version 3.0b2, 30 April 2009
----------------------------
diff --git a/coverage/cmdline.py b/coverage/cmdline.py
index 6a840cdf..2ccd54f5 100644
--- a/coverage/cmdline.py
+++ b/coverage/cmdline.py
@@ -140,11 +140,12 @@ class CoverageScript:
data_suffix = bool(settings.get('parallel-mode')),
cover_stdlib = settings.get('stdlib')
)
- self.coverage.get_ready()
if settings.get('erase'):
self.coverage.erase()
-
+ else:
+ self.coverage.load()
+
if settings.get('execute'):
if not args:
help_fn("Nothing to do.")
@@ -156,9 +157,11 @@ class CoverageScript:
run_python_file(args[0], args)
finally:
self.coverage.stop()
-
+ self.coverage.save()
+
if settings.get('combine'):
self.coverage.combine()
+ self.coverage.save()
# Remaining actions are reporting, with some common options.
show_missing = settings.get('show-missing')
diff --git a/coverage/control.py b/coverage/control.py
index 22efa2ff..03837362 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -53,10 +53,6 @@ class coverage:
# The default exclude pattern.
self.exclude('# *pragma[: ]*[nN][oO] *[cC][oO][vV][eE][rR]')
- # Save coverage data when Python exits.
- import atexit
- atexit.register(self.save)
-
def _should_trace(self, filename, frame):
"""Decide whether to trace execution in `filename`
@@ -101,13 +97,13 @@ class coverage:
"""
self.data.usefile(usecache)
- def get_ready(self):
+ def load(self):
+ """Load previously-collected coverage data from the data file."""
self.collector.reset()
self.data.read()
def start(self):
"""Start measuring code coverage."""
- self.get_ready()
self.collector.start()
def stop(self):
@@ -122,7 +118,6 @@ class coverage:
discarding the data file.
"""
- self.get_ready()
self.collector.reset()
self.data.erase()