diff options
Diffstat (limited to 'coverage')
-rw-r--r-- | coverage/config.py | 20 | ||||
-rw-r--r-- | coverage/control.py | 13 |
2 files changed, 27 insertions, 6 deletions
diff --git a/coverage/config.py b/coverage/config.py index 20cbc041..f65115f8 100644 --- a/coverage/config.py +++ b/coverage/config.py @@ -20,6 +20,7 @@ class CoverageConfig(object): self.branch = False self.exclude_list = ['(?i)# *pragma[: ]*no *cover'] self.data_file = ".coverage" + self.omit_prefixes = None def from_environment(self, env_var): """Read configuration from the `env_var` environment variable.""" @@ -45,15 +46,28 @@ class CoverageConfig(object): cp = configparser.RawConfigParser() cp.read(files) + # [run] if cp.has_option('run', 'timid'): self.timid = cp.getboolean('run', 'timid') if cp.has_option('run', 'cover_pylib'): self.cover_pylib = cp.getboolean('run', 'cover_pylib') if cp.has_option('run', 'branch'): self.branch = cp.getboolean('run', 'branch') + if cp.has_option('run', 'data_file'): + self.data_file = cp.get('run', 'data_file') + + # [report] if cp.has_option('report', 'exclude_lines'): - # Exclude is a list of lines, leave out the blank ones. + # exclude_lines is a list of lines, leave out the blank ones. exclude_list = cp.get('report', 'exclude_lines') self.exclude_list = list(filter(None, exclude_list.split('\n'))) - if cp.has_option('run', 'data_file'): - self.data_file = cp.get('run', 'data_file') + if cp.has_option('report', 'omit'): + # omit is a list of prefixes, on separate lines, or separated by + # commas. + omit_list = cp.get('report', 'omit') + self.omit_prefixes = [] + for omit_line in omit_list.split('\n'): + for omit in omit_line.split(','): + omit = omit.strip() + if omit: + self.omit_prefixes.append(omit) diff --git a/coverage/control.py b/coverage/control.py index 94cb931f..14ba8637 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -319,18 +319,23 @@ class coverage(object): excluded lines have "-", and missing lines have "!". """ + self.config.from_args(omit_prefixes=omit_prefixes) reporter = AnnotateReporter(self, ignore_errors) reporter.report( - morfs, directory=directory, omit_prefixes=omit_prefixes) + morfs, directory=directory, omit_prefixes=self.config.omit_prefixes + ) def html_report(self, morfs=None, directory=None, ignore_errors=False, omit_prefixes=None): """Generate an HTML report. """ + self.config.from_args(omit_prefixes=omit_prefixes) reporter = HtmlReporter(self, ignore_errors) reporter.report( - morfs, directory=directory, omit_prefixes=omit_prefixes) + morfs, directory=directory, + omit_prefixes=self.config.omit_prefixes + ) def xml_report(self, morfs=None, outfile=None, ignore_errors=False, omit_prefixes=None): @@ -339,12 +344,14 @@ class coverage(object): The report is compatible with Cobertura reports. """ + self.config.from_args(omit_prefixes=omit_prefixes) if outfile: outfile = open(outfile, "w") try: reporter = XmlReporter(self, ignore_errors) reporter.report( - morfs, omit_prefixes=omit_prefixes, outfile=outfile) + morfs, omit_prefixes=self.config.omit_prefixes, outfile=outfile + ) finally: outfile.close() |