summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernat Gabor <bgabor8@bloomberg.net>2020-04-03 08:19:23 +0100
committerBernat Gabor <bgabor8@bloomberg.net>2020-04-03 08:19:23 +0100
commitedadbece423b100ff3513cd26670b1fc2631cbf3 (patch)
treed34612ea0111877c431c49e725bf46b5e56aeef8
parent64bd04c44135f6e03df193032619c4794bd87314 (diff)
downloadpython-coveragepy-git-edadbece423b100ff3513cd26670b1fc2631cbf3.tar.gz
Allow plugins to alter the paths config
Signed-off-by: Bernat Gabor <bgabor8@bloomberg.net>
-rw-r--r--coverage/config.py6
-rw-r--r--tests/test_config.py12
2 files changed, 18 insertions, 0 deletions
diff --git a/coverage/config.py b/coverage/config.py
index 78a3e86a..166f34ea 100644
--- a/coverage/config.py
+++ b/coverage/config.py
@@ -421,6 +421,9 @@ class CoverageConfig(object):
`value` is the new value for the option.
"""
+ if option_name == "paths":
+ self.paths = value
+ return
# Check all the hard-coded options.
for option_spec in self.CONFIG_FILE_OPTIONS:
@@ -448,6 +451,9 @@ class CoverageConfig(object):
Returns the value of the option.
"""
+ if option_name == "paths":
+ return self.paths
+
# Check all the hard-coded options.
for option_spec in self.CONFIG_FILE_OPTIONS:
attr, where = option_spec[:2]
diff --git a/tests/test_config.py b/tests/test_config.py
index fe9e001e..880368f7 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -3,6 +3,7 @@
# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Test the config file handling for coverage.py"""
+from collections import OrderedDict
import mock
@@ -340,6 +341,17 @@ class ConfigTest(CoverageTest):
self.assertFalse(cov.get_option("run:branch"))
self.assertEqual(cov.get_option("run:data_file"), "fooey.dat")
+ def test_tweaks_paths_after_constructor(self):
+ cov = coverage.Coverage()
+ paths = cov.get_option("paths")
+ self.assertEqual(paths, OrderedDict())
+
+ new_paths = OrderedDict()
+ new_paths['magic'] = ['src', 'ok']
+ cov.set_option("paths", new_paths)
+
+ self.assertEqual(cov.get_option("paths"), new_paths)
+
def test_tweak_error_checking(self):
# Trying to set an unknown config value raises an error.
cov = coverage.Coverage()