summaryrefslogtreecommitdiff
path: root/coverage/config.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/config.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/config.py')
-rw-r--r--coverage/config.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/coverage/config.py b/coverage/config.py
index 8f508f28..92d83016 100644
--- a/coverage/config.py
+++ b/coverage/config.py
@@ -25,6 +25,7 @@ class CoverageConfig(object):
self.exclude_list = ['(?i)# *pragma[: ]*no *cover']
self.ignore_errors = False
self.omit_prefixes = None
+ self.require_prefixes = None
# Defaults for [html]
self.html_dir = "htmlcov"
@@ -67,6 +68,26 @@ class CoverageConfig(object):
self.parallel = cp.getboolean('run', 'parallel')
if cp.has_option('run', 'timid'):
self.timid = cp.getboolean('run', 'timid')
+ if cp.has_option('run', 'omit'):
+ # omit is a list of prefixes, on separate lines, or separated by
+ # commas.
+ omit_list = cp.get('run', '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)
+ if cp.has_option('run', 'require'):
+ # require is a list of prefixes, on separate lines, or separated by
+ # commas.
+ require_list = cp.get('run', 'require')
+ self.require_prefixes = []
+ for require_line in require_list.split('\n'):
+ for require in require_line.split(','):
+ require = require.strip()
+ if require:
+ self.require_prefixes.append(require)
# [report]
if cp.has_option('report', 'exclude_lines'):
@@ -85,6 +106,16 @@ class CoverageConfig(object):
omit = omit.strip()
if omit:
self.omit_prefixes.append(omit)
+ if cp.has_option('report', 'require'):
+ # require is a list of prefixes, on separate lines, or separated by
+ # commas.
+ require_list = cp.get('report', 'require')
+ self.require_prefixes = []
+ for require_line in require_list.split('\n'):
+ for require in require_line.split(','):
+ require = require.strip()
+ if require:
+ self.require_prefixes.append(require)
# [html]
if cp.has_option('html', 'directory'):