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 | 998879621fe7195580ddcf5262170b80843d8cc8 (patch) | |
tree | 38307cc74002dc6203785822b7bf065b414e2d85 /test/coverage_coverage.py | |
parent | cf74b70ae1f8e0018c604153c8637106f552b662 (diff) | |
download | python-coveragepy-git-998879621fe7195580ddcf5262170b80843d8cc8.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 00000000..f2a47f78 --- /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) |