diff options
Diffstat (limited to 'coverage')
-rw-r--r-- | coverage/annotate.py | 16 | ||||
-rw-r--r-- | coverage/cmdline.py | 4 | ||||
-rw-r--r-- | coverage/codeunit.py | 14 | ||||
-rw-r--r-- | coverage/config.py | 6 | ||||
-rw-r--r-- | coverage/control.py | 68 | ||||
-rw-r--r-- | coverage/html.py | 20 | ||||
-rw-r--r-- | coverage/report.py | 21 | ||||
-rw-r--r-- | coverage/summary.py | 11 | ||||
-rw-r--r-- | coverage/xmlreport.py | 19 |
9 files changed, 87 insertions, 92 deletions
diff --git a/coverage/annotate.py b/coverage/annotate.py index b53ae03d..5cbdd6a0 100644 --- a/coverage/annotate.py +++ b/coverage/annotate.py @@ -33,15 +33,17 @@ class AnnotateReporter(Reporter): blank_re = re.compile(r"\s*(#|$)") else_re = re.compile(r"\s*else\s*:\s*(#|$)") - def report(self, morfs, directory=None, omit_prefixes=None, include_prefixes=None): + def report(self, morfs, directory=None, omit_prefixes=None, + include_prefixes=None): """Run the report. - `omit_prefixes` is a list of prefixes. CodeUnits that match those prefixes - will be omitted from the list. - `include_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 `include_prefixes`. + + See `coverage.report()` for arguments. + """ - self.report_files(self.annotate_file, morfs, directory, omit_prefixes, include_prefixes) + self.report_files( + self.annotate_file, morfs, directory, omit_prefixes, + include_prefixes + ) def annotate_file(self, cu, analysis): """Annotate a single file. diff --git a/coverage/cmdline.py b/coverage/cmdline.py index 9148904e..cb47690c 100644 --- a/coverage/cmdline.py +++ b/coverage/cmdline.py @@ -35,8 +35,8 @@ class Opts(object): include = optparse.Option( '', '--include', action='store', metavar="PRE1,PRE2,...", - help="Include files only when their filename path starts with one of these " - "prefixes." + help="Include files only when their filename path starts with one of " + "these prefixes." ) pylib = optparse.Option( '-L', '--pylib', action='store_true', diff --git a/coverage/codeunit.py b/coverage/codeunit.py index 6312efe2..a0da1a71 100644 --- a/coverage/codeunit.py +++ b/coverage/codeunit.py @@ -6,16 +6,18 @@ from coverage.backward import string_class, StringIO from coverage.misc import CoverageException -def code_unit_factory(morfs, file_locator, omit_prefixes=None, include_prefixes=None): +def code_unit_factory( + morfs, file_locator, omit_prefixes=None, include_prefixes=None + ): """Construct a list of CodeUnits from polymorphic inputs. `morfs` is a module or a filename, or a list of same. + `file_locator` is a FileLocator that can help resolve filenames. - `omit_prefixes` is a list of prefixes. CodeUnits that match those prefixes - will be omitted from the list. - `include_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 `include_prefixes`. + + `include_prefixes` is a list of prefixes. Only CodeUnits that match those + prefixes will be included in the list. `omit_prefixes` is a list of + prefixes to omit from the list. Returns a list of CodeUnit objects. diff --git a/coverage/config.py b/coverage/config.py index 34ed814d..133444d8 100644 --- a/coverage/config.py +++ b/coverage/config.py @@ -95,12 +95,12 @@ class CoverageConfig(object): def get_list(self, cp, section, option): """Read a list of strings from the ConfigParser `cp`. - + The value of `section` and `option` is treated as a comma- and newline- separated list of strings. Each value is stripped of whitespace. - + Returns the list of strings. - + """ value_list = cp.get(section, option) values = [] diff --git a/coverage/control.py b/coverage/control.py index 1ed3df54..d07abaf3 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -59,13 +59,10 @@ class coverage(object): standard file is read (".coveragerc"). If it is False, then no file is read. - `omit_prefixes` is a list of prefixes. CodeUnits that match those prefixes - will be omitted from the list. + `omit_prefixes` and `include_prefixes` are lists of filename prefixes. + Files that match `include_prefixes` will be measured, files that match + `omit_prefixes` will not. - `include_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 `include_prefixes`. """ from coverage import __version__ @@ -101,14 +98,8 @@ class coverage(object): self.file_locator = FileLocator() - if self.config.omit_prefixes: - self.omit_prefixes = [self.file_locator.abs_file(p) for p in self.config.omit_prefixes] - else: - self.omit_prefixes = [] - if self.config.include_prefixes: - self.include_prefixes = [self.file_locator.abs_file(p) for p in self.config.include_prefixes] - else: - self.include_prefixes = [] + self.omit_prefixes = self._abs_files(self.config.omit_prefixes) + self.include_prefixes = self._abs_files(self.config.include_prefixes) self.collector = Collector( self._should_trace, timid=self.config.timid, @@ -213,6 +204,11 @@ class coverage(object): print("should_trace: %r -> %r" % (filename, ret)) return ret + def _abs_files(self, files): + """Return a list of absolute file names for the names in `files`.""" + files = files or [] + return [self.file_locator.abs_file(f) for f in files] + def use_cache(self, usecache): """Control the use of a data file (incorrectly called a cache). @@ -352,17 +348,18 @@ class coverage(object): return Analysis(self, it) def report(self, morfs=None, show_missing=True, ignore_errors=None, - file=None, omit_prefixes=None, include_prefixes=None): # pylint: disable-msg=W0622 + file=None, # pylint: disable-msg=W0622 + omit_prefixes=None, include_prefixes=None + ): """Write a summary report to `file`. Each module in `morfs` is listed, with counts of statements, executed statements, missing statements, and a list of lines missed. - `omit_prefixes` is a list of prefixes. CodeUnits that match those prefixes - will be omitted from the list. - `include_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 `include_prefixes`. + `include_prefixes` is a list of filename prefixes. Modules that match + those prefixes will be included in the report. Modules that match + `omit_prefixes` will not be included in the report. + """ self.config.from_args( ignore_errors=ignore_errors, @@ -373,7 +370,8 @@ class coverage(object): self, show_missing, self.config.ignore_errors ) reporter.report( - morfs, outfile=file, omit_prefixes=self.config.omit_prefixes, include_prefixes=self.config.include_prefixes + morfs, outfile=file, omit_prefixes=self.config.omit_prefixes, + include_prefixes=self.config.include_prefixes ) def annotate(self, morfs=None, directory=None, ignore_errors=None, @@ -385,11 +383,8 @@ class coverage(object): marker to indicate the coverage of the line. Covered lines have ">", excluded lines have "-", and missing lines have "!". - `omit_prefixes` is a list of prefixes. CodeUnits that match those prefixes - will be omitted from the list. - `include_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 `include_prefixes`. + See `coverage.report()` for other arguments. + """ self.config.from_args( ignore_errors=ignore_errors, @@ -398,18 +393,17 @@ class coverage(object): ) reporter = AnnotateReporter(self, self.config.ignore_errors) reporter.report( - morfs, directory=directory, omit_prefixes=self.config.omit_prefixes, include_prefixes=self.config.include_prefixes + morfs, directory=directory, + omit_prefixes=self.config.omit_prefixes, + include_prefixes=self.config.include_prefixes ) def html_report(self, morfs=None, directory=None, ignore_errors=None, omit_prefixes=None, include_prefixes=None): """Generate an HTML report. - `omit_prefixes` is a list of prefixes. CodeUnits that match those prefixes - will be omitted from the list. - `include_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 `include_prefixes`. + See `coverage.report()` for other arguments. + """ self.config.from_args( ignore_errors=ignore_errors, @@ -433,11 +427,8 @@ class coverage(object): Each module in `morfs` is included in the report. `outfile` is the path to write the file to, "-" will write to stdout. - `omit_prefixes` is a list of prefixes. CodeUnits that match those prefixes - will be omitted from the list. - `include_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 `include_prefixes`. + See `coverage.report()` for other arguments. + """ self.config.from_args( ignore_errors=ignore_errors, @@ -455,7 +446,8 @@ class coverage(object): try: reporter = XmlReporter(self, self.config.ignore_errors) reporter.report( - morfs, omit_prefixes=self.config.omit_prefixes, include_prefixes=self.config.include_prefixes, outfile=outfile + morfs, omit_prefixes=self.config.omit_prefixes, + include_prefixes=self.config.include_prefixes, outfile=outfile ) finally: if file_to_close: diff --git a/coverage/html.py b/coverage/html.py index 16ec16bd..94ba0dea 100644 --- a/coverage/html.py +++ b/coverage/html.py @@ -31,23 +31,23 @@ class HtmlReporter(Reporter): self.files = [] self.arcs = coverage.data.has_arcs() - def report(self, morfs, directory, omit_prefixes=None, include_prefixes=None): + def report(self, morfs, directory, omit_prefixes=None, + include_prefixes=None + ): """Generate an HTML report for `morfs`. `morfs` is a list of modules or filenames. `directory` is where to put - the HTML files. `omit_prefixes` is a list of strings, prefixes of - modules to omit from the report. - - `omit_prefixes` is a list of prefixes. CodeUnits that match those prefixes - will be omitted from the list. - `include_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 `include_prefixes`. + the HTML files. + + See `coverage.report()` for other arguments. + """ assert directory, "must provide a directory for html reporting" # Process all the files. - self.report_files(self.html_file, morfs, directory, omit_prefixes, include_prefixes) + self.report_files( + self.html_file, morfs, directory, omit_prefixes, include_prefixes + ) # Write the index file. self.index_file() diff --git a/coverage/report.py b/coverage/report.py index 9e6b29d8..a676e186 100644 --- a/coverage/report.py +++ b/coverage/report.py @@ -26,18 +26,18 @@ class Reporter(object): def find_code_units(self, morfs, omit_prefixes, include_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. - `include_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 `include_prefixes`. + See `coverage.report()` for other arguments. + """ morfs = morfs or self.coverage.data.executed_files() self.code_units = code_unit_factory( - morfs, self.coverage.file_locator, omit_prefixes, include_prefixes) + morfs, self.coverage.file_locator, omit_prefixes, + include_prefixes + ) self.code_units.sort() def report_files(self, report_fn, morfs, directory=None, @@ -46,11 +46,10 @@ class Reporter(object): `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. - `include_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 `include_prefixes`. + `include_prefixes` is a list of filename prefixes. CodeUnits that match + those prefixes will be included in the list. CodeUnits that match + `omit_prefixes` will be omitted from the list. + """ self.find_code_units(morfs, omit_prefixes, include_prefixes) diff --git a/coverage/summary.py b/coverage/summary.py index df730375..89b31020 100644 --- a/coverage/summary.py +++ b/coverage/summary.py @@ -14,14 +14,13 @@ class SummaryReporter(Reporter): self.show_missing = show_missing self.branches = coverage.data.has_arcs() - def report(self, morfs, omit_prefixes=None, outfile=None, include_prefixes=None): + def report(self, morfs, omit_prefixes=None, outfile=None, + include_prefixes=None + ): """Writes a report summarizing coverage statistics per module. - `omit_prefixes` is a list of prefixes. CodeUnits that match those prefixes - will be omitted from the list. - `include_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 `include_prefixes`. + See `coverage.report()` for other arguments. + """ self.find_code_units(morfs, omit_prefixes, include_prefixes) diff --git a/coverage/xmlreport.py b/coverage/xmlreport.py index 2fb57b26..17d9fd5f 100644 --- a/coverage/xmlreport.py +++ b/coverage/xmlreport.py @@ -22,17 +22,15 @@ class XmlReporter(Reporter): self.xml_out = None self.arcs = coverage.data.has_arcs() - def report(self, morfs, omit_prefixes=None, include_prefixes=None, outfile=None): + def report(self, morfs, omit_prefixes=None, include_prefixes=None, + outfile=None + ): """Generate a Cobertura-compatible XML report for `morfs`. - `morfs` is a list of modules or filenames. `omit_prefixes` is a list - of strings, prefixes of modules to omit from the report. + `morfs` is a list of modules or filenames. + + See `coverage.report()` for other arguments. - `omit_prefixes` is a list of prefixes. CodeUnits that match those prefixes - will be omitted from the list. - `include_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 `include_prefixes`. """ # Initial setup. outfile = outfile or sys.stdout @@ -57,7 +55,10 @@ class XmlReporter(Reporter): # Call xml_file for each file in the data. self.packages = {} - self.report_files(self.xml_file, morfs, omit_prefixes=omit_prefixes, include_prefixes=include_prefixes) + self.report_files( + self.xml_file, morfs, omit_prefixes=omit_prefixes, + include_prefixes=include_prefixes + ) lnum_tot, lhits_tot = 0, 0 bnum_tot, bhits_tot = 0, 0 |