diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2009-05-03 23:31:40 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2009-05-03 23:31:40 -0400 |
commit | c1ffa6ed23800f528af8db045f710bf8c1135c22 (patch) | |
tree | 0e12ceefaabded3b2f49c15298accb50cf834c00 /test/coverage_coverage.py | |
parent | 2952df0f7b0e36a36d837ccd5ef71db735681c3c (diff) | |
download | python-coveragepy-c1ffa6ed23800f528af8db045f710bf8c1135c22.tar.gz |
Keeping a stack of Collectors makes it possible for Coverage to measure itself (mostly).
Diffstat (limited to 'test/coverage_coverage.py')
-rw-r--r-- | test/coverage_coverage.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/coverage_coverage.py b/test/coverage_coverage.py new file mode 100644 index 0000000..f2a47f7 --- /dev/null +++ b/test/coverage_coverage.py @@ -0,0 +1,34 @@ +# Coverage-test Coverage itself. + +import coverage +import os, sys + +cov = coverage.coverage() +cov.erase() +cov.start() + +# Re-import coverage to get it coverage tested! I don't understand all the +# mechanics here, but if I don't carry over the imported modules (in covmods), +# then things go haywire (os == None eventually). +covmods = {} +covdir = os.path.split(coverage.__file__) +for name, mod in sys.modules.items(): + if name.startswith('coverage'): + if hasattr(mod, '__file__') and mod.__file__.startswith(covdir): + covmods[name] = mod + del sys.modules[name] +import coverage +sys.modules.update(covmods) + +# Run nosetests, with the arguments from our command line. +import nose +nose.run(sys.argv[1:]) + +cov.stop() +cov.save() # TODO: This is needed to get group_collected_data called. + +cov.exclude("#pragma: no cover") +cov.exclude("def __repr__") +cov.exclude("if __name__ == .__main__.:") + +cov.html_report(directory='htmlcov', ignore_errors=True) |