summaryrefslogtreecommitdiff
path: root/coverage
diff options
context:
space:
mode:
Diffstat (limited to 'coverage')
-rw-r--r--coverage/config.py27
-rw-r--r--coverage/control.py17
-rw-r--r--coverage/report.py8
3 files changed, 34 insertions, 18 deletions
diff --git a/coverage/config.py b/coverage/config.py
index 11b7056..d4d320b 100644
--- a/coverage/config.py
+++ b/coverage/config.py
@@ -178,6 +178,10 @@ class CoverageConfig(object):
self.attempted_config_files = []
self.config_files = []
+ # Defaults for [run] and [report]
+ self._include = None
+ self._omit = None
+
# Defaults for [run]
self.branch = False
self.concurrency = None
@@ -189,14 +193,16 @@ class CoverageConfig(object):
self.parallel = False
self.plugins = []
self.source = None
+ self.run_include = None
+ self.run_omit = None
self.timid = False
# Defaults for [report]
self.exclude_list = DEFAULT_EXCLUDE[:]
self.fail_under = 0
self.ignore_errors = False
- self.include = None
- self.omit = None
+ self.report_include = None
+ self.report_omit = None
self.partial_always_list = DEFAULT_PARTIAL_ALWAYS[:]
self.partial_list = DEFAULT_PARTIAL[:]
self.precision = 0
@@ -218,7 +224,8 @@ class CoverageConfig(object):
# Options for plugins
self.plugin_options = {}
- MUST_BE_LIST = ["concurrency", "debug", "disable_warnings", "include", "omit", "plugins"]
+ MUST_BE_LIST = ["run_omit", "run_include", "report_omit", "report_include",
+ "debug", "plugins", "concurrency"]
def from_args(self, **kwargs):
"""Read config values from `kwargs`."""
@@ -315,9 +322,9 @@ class CoverageConfig(object):
('data_file', 'run:data_file'),
('debug', 'run:debug', 'list'),
('disable_warnings', 'run:disable_warnings', 'list'),
- ('include', 'run:include', 'list'),
+ ('_include', 'run:include', 'list'),
('note', 'run:note'),
- ('omit', 'run:omit', 'list'),
+ ('_omit', 'run:omit', 'list'),
('parallel', 'run:parallel', 'boolean'),
('plugins', 'run:plugins', 'list'),
('source', 'run:source', 'list'),
@@ -327,8 +334,8 @@ class CoverageConfig(object):
('exclude_list', 'report:exclude_lines', 'regexlist'),
('fail_under', 'report:fail_under', 'int'),
('ignore_errors', 'report:ignore_errors', 'boolean'),
- ('include', 'report:include', 'list'),
- ('omit', 'report:omit', 'list'),
+ ('_include', 'report:include', 'list'),
+ ('_omit', 'report:omit', 'list'),
('partial_always_list', 'report:partial_branches_always', 'regexlist'),
('partial_list', 'report:partial_branches', 'regexlist'),
('precision', 'report:precision', 'int'),
@@ -459,6 +466,12 @@ def read_coverage_config(config_file, **kwargs):
if config_read:
break
+ for attr in ('_omit', '_include'):
+ value = getattr(config, attr)
+ if value is not None:
+ for section in ('run', 'report'):
+ setattr(config, section + attr, value)
+
# 3) from environment variables:
env_data_file = os.environ.get('COVERAGE_FILE')
if env_data_file:
diff --git a/coverage/control.py b/coverage/control.py
index 2cbe491..c2fe806 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -143,7 +143,8 @@ class Coverage(object):
config_file=config_file,
data_file=data_file, cover_pylib=cover_pylib, timid=timid,
branch=branch, parallel=bool_or_none(data_suffix),
- source=source, omit=omit, include=include, debug=debug,
+ source=source, run_omit=omit, run_include=include, debug=debug,
+ report_omit=omit, report_include=include,
concurrency=concurrency,
)
@@ -235,8 +236,8 @@ class Coverage(object):
self.source_pkgs.append(src)
self.source_pkgs_unmatched = self.source_pkgs[:]
- self.omit = prep_patterns(self.config.omit)
- self.include = prep_patterns(self.config.include)
+ self.omit = prep_patterns(self.config.run_omit)
+ self.include = prep_patterns(self.config.run_include)
concurrency = self.config.concurrency or []
if "multiprocessing" in concurrency:
@@ -346,6 +347,8 @@ class Coverage(object):
if self.pylib_paths:
self.pylib_match = TreeMatcher(self.pylib_paths)
if self.include:
+ if self.source or self.source_pkgs:
+ print("--include is ignored because --source is set")
self.include_match = FnmatchMatcher(self.include)
if self.omit:
self.omit_match = FnmatchMatcher(self.omit)
@@ -1029,7 +1032,7 @@ class Coverage(object):
"""
self.get_data()
self.config.from_args(
- ignore_errors=ignore_errors, omit=omit, include=include,
+ ignore_errors=ignore_errors, report_omit=omit, report_include=include,
show_missing=show_missing, skip_covered=skip_covered,
)
reporter = SummaryReporter(self, self.config)
@@ -1051,7 +1054,7 @@ class Coverage(object):
"""
self.get_data()
self.config.from_args(
- ignore_errors=ignore_errors, omit=omit, include=include
+ ignore_errors=ignore_errors, report_omit=omit, report_include=include
)
reporter = AnnotateReporter(self, self.config)
reporter.report(morfs, directory=directory)
@@ -1078,7 +1081,7 @@ class Coverage(object):
"""
self.get_data()
self.config.from_args(
- ignore_errors=ignore_errors, omit=omit, include=include,
+ ignore_errors=ignore_errors, report_omit=omit, report_include=include,
html_dir=directory, extra_css=extra_css, html_title=title,
skip_covered=skip_covered,
)
@@ -1103,7 +1106,7 @@ class Coverage(object):
"""
self.get_data()
self.config.from_args(
- ignore_errors=ignore_errors, omit=omit, include=include,
+ ignore_errors=ignore_errors, report_omit=omit, report_include=include,
xml_output=outfile,
)
file_to_close = None
diff --git a/coverage/report.py b/coverage/report.py
index 609dc2d..b460863 100644
--- a/coverage/report.py
+++ b/coverage/report.py
@@ -54,12 +54,12 @@ class Reporter(object):
"""
reporters = self.coverage._get_file_reporters(morfs)
- if self.config.include:
- matcher = FnmatchMatcher(prep_patterns(self.config.include))
+ if self.config.report_include:
+ matcher = FnmatchMatcher(prep_patterns(self.config.report_include))
reporters = [fr for fr in reporters if matcher.match(fr.filename)]
- if self.config.omit:
- matcher = FnmatchMatcher(prep_patterns(self.config.omit))
+ if self.config.report_omit:
+ matcher = FnmatchMatcher(prep_patterns(self.config.report_omit))
reporters = [fr for fr in reporters if not matcher.match(fr.filename)]
self._file_reporters = sorted(reporters)