summaryrefslogtreecommitdiff
path: root/coverage/report.py
diff options
context:
space:
mode:
authorZooko Ofsimplegeo <zooko@simplegeo.com>2010-04-19 16:08:37 -0600
committerZooko Ofsimplegeo <zooko@simplegeo.com>2010-04-19 16:08:37 -0600
commitce4dbf3b92dcccf146cdf8c0bfb2f6da0a7c5dd5 (patch)
treec1841e353e5968604551161e2afbd4ebad38fe75 /coverage/report.py
parent6638c632a10af6477a712f1a86af6d9e9ab3a3e3 (diff)
downloadpython-coveragepy-git-ce4dbf3b92dcccf146cdf8c0bfb2f6da0a7c5dd5.tar.gz
add a --require option to specify directories which are required to be at the beginning of the path for any file that is going to be included in code coverage
make the --omit and --require options apply to code coverage generation as well as to reporting; This speeds up tests from 6 seconds to 1 second on my system, as well as making the resulting .coverage db include *only* the code that I care about, which helps with my code coverage progression/regression tool. --HG-- extra : transplant_source : %1F.4%81%E8%DA%0B%D0%D5%9D%89%DE%E1vY%E6%CD%1A%EB%C9
Diffstat (limited to 'coverage/report.py')
-rw-r--r--coverage/report.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/coverage/report.py b/coverage/report.py
index 5b66f999..e2a09fbf 100644
--- a/coverage/report.py
+++ b/coverage/report.py
@@ -24,26 +24,35 @@ class Reporter(object):
# classes.
self.directory = None
- def find_code_units(self, morfs, omit_prefixes):
+ def find_code_units(self, morfs, omit_prefixes, require_prefixes):
"""Find the code units we'll report on.
-
`morfs` is a list of modules or filenames. `omit_prefixes` is a list
of prefixes to leave out of the list.
+ `omit_prefixes` is a list of prefixes. CodeUnits that match those prefixes
+ will be omitted from the list.
+ `require_prefixes` is a list of prefixes. Only CodeUnits that match those prefixes
+ will be included in the list.
+ You are required to pass at most one of `omit_prefixes` and `require_prefixes`.
"""
morfs = morfs or self.coverage.data.executed_files()
self.code_units = code_unit_factory(
- morfs, self.coverage.file_locator, omit_prefixes)
+ morfs, self.coverage.file_locator, omit_prefixes, require_prefixes)
self.code_units.sort()
def report_files(self, report_fn, morfs, directory=None,
- omit_prefixes=None):
+ omit_prefixes=None, require_prefixes=None):
"""Run a reporting function on a number of morfs.
`report_fn` is called for each relative morf in `morfs`.
+ `omit_prefixes` is a list of prefixes. CodeUnits that match those prefixes
+ will be omitted from the list.
+ `require_prefixes` is a list of prefixes. Only CodeUnits that match those prefixes
+ will be included in the list.
+ You are required to pass at most one of `omit_prefixes` and `require_prefixes`.
"""
- self.find_code_units(morfs, omit_prefixes)
+ self.find_code_units(morfs, omit_prefixes, require_prefixes)
if not self.code_units:
raise CoverageException("No data to report.")