diff options
author | Zooko Ofsimplegeo <zooko@simplegeo.com> | 2010-04-19 16:08:37 -0600 |
---|---|---|
committer | Zooko Ofsimplegeo <zooko@simplegeo.com> | 2010-04-19 16:08:37 -0600 |
commit | 3fa1d99066ecbbd02b15885b18c6e99385733954 (patch) | |
tree | fcf1a4755626614cdda21a42b4c87f449bda1615 /coverage/report.py | |
parent | 5c2e817e0606ee912fbb4f44550d8b29cf0cd278 (diff) | |
download | python-coveragepy-3fa1d99066ecbbd02b15885b18c6e99385733954.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.
Diffstat (limited to 'coverage/report.py')
-rw-r--r-- | coverage/report.py | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/coverage/report.py b/coverage/report.py index 5b66f99..e2a09fb 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.") |