diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2010-05-15 12:10:39 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2010-05-15 12:10:39 -0400 |
commit | 128e1985c1d0f958dfda551f92fc858c1989777f (patch) | |
tree | cdfaea81a88179fb5bd32088a2cc0456d21ab78a | |
parent | 2062c0973a8e4fb7717cd5b1276cf6d9b231eed0 (diff) | |
download | python-coveragepy-git-128e1985c1d0f958dfda551f92fc858c1989777f.tar.gz |
Refactor common code in config.py, and start testing the new options.
-rw-r--r-- | coverage/config.py | 58 | ||||
-rw-r--r-- | test/test_config.py | 2 |
2 files changed, 24 insertions, 36 deletions
diff --git a/coverage/config.py b/coverage/config.py index b560fb2a..34ed814d 100644 --- a/coverage/config.py +++ b/coverage/config.py @@ -69,25 +69,9 @@ class CoverageConfig(object): 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) + self.omit_prefixes = self.get_list(cp, 'run', 'omit') if cp.has_option('run', 'include'): - # include is a list of prefixes, on separate lines, or separated by - # commas. - include_list = cp.get('run', 'include') - self.include_prefixes = [] - for include_line in include_list.split('\n'): - for include in include_line.split(','): - include = include.strip() - if include: - self.include_prefixes.append(include) + self.include_prefixes = self.get_list(cp, 'run', 'include') # [report] if cp.has_option('report', 'exclude_lines'): @@ -97,25 +81,9 @@ class CoverageConfig(object): if cp.has_option('report', 'ignore_errors'): self.ignore_errors = cp.getboolean('report', 'ignore_errors') 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) + self.omit_prefixes = self.get_list(cp, 'report', 'omit') if cp.has_option('report', 'include'): - # include is a list of prefixes, on separate lines, or separated by - # commas. - include_list = cp.get('report', 'include') - self.include_prefixes = [] - for include_line in include_list.split('\n'): - for include in include_line.split(','): - include = include.strip() - if include: - self.include_prefixes.append(include) + self.include_prefixes = self.get_list(cp, 'report', 'include') # [html] if cp.has_option('html', 'directory'): @@ -124,3 +92,21 @@ class CoverageConfig(object): # [xml] if cp.has_option('xml', 'output'): self.xml_output = cp.get('xml', 'output') + + 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 = [] + for value_line in value_list.split('\n'): + for value in value_line.split(','): + value = value.strip() + if value: + values.append(value) + return values diff --git a/test/test_config.py b/test/test_config.py index f4bd65bf..d29ab3d7 100644 --- a/test/test_config.py +++ b/test/test_config.py @@ -102,6 +102,7 @@ class ConfigFileTest(CoverageTest): branch = 1 cover_pylib = TRUE parallel = on + include = a/ , b/ [report] ; these settings affect reporting. @@ -136,6 +137,7 @@ class ConfigFileTest(CoverageTest): ["if 0:", "pragma:?\s+no cover", "another_tab"] ) self.assertTrue(cov.config.ignore_errors) + self.assertEqual(cov.config.include_prefixes, ["a/", "b/"]) self.assertEqual(cov.config.omit_prefixes, ["one", "another", "some_more", "yet_more"] ) |