summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/flake8/options/config.py13
-rw-r--r--tests/unit/test_merged_config_parser.py13
2 files changed, 15 insertions, 11 deletions
diff --git a/src/flake8/options/config.py b/src/flake8/options/config.py
index 5884873..6c66d89 100644
--- a/src/flake8/options/config.py
+++ b/src/flake8/options/config.py
@@ -184,9 +184,12 @@ class MergedConfigParser(object):
#: Our instance of our :class:`~ConfigFileFinder`
self.config_finder = config_finder
- def _normalize_value(self, option, value):
+ def _normalize_value(self, option, value, parent=None):
+ if parent is None:
+ parent = self.config_finder.local_directory
+
final_value = option.normalize(
- value, self.config_finder.local_directory
+ value, parent
)
LOG.debug(
'%r has been normalized to %r for option "%s"',
@@ -196,7 +199,7 @@ class MergedConfigParser(object):
)
return final_value
- def _parse_config(self, config_parser):
+ def _parse_config(self, config_parser, parent=None):
config_dict = {}
for option_name in config_parser.options(self.program_name):
if option_name not in self.config_options:
@@ -216,7 +219,7 @@ class MergedConfigParser(object):
value = method(self.program_name, option_name)
LOG.debug('Option "%s" returned value: %r', option_name, value)
- final_value = self._normalize_value(option, value)
+ final_value = self._normalize_value(option, value, parent)
config_dict[option.config_name] = final_value
return config_dict
@@ -262,7 +265,7 @@ class MergedConfigParser(object):
return {}
LOG.debug("Parsing CLI configuration files.")
- return self._parse_config(config)
+ return self._parse_config(config, os.path.dirname(config_path))
def merge_user_and_local_config(self):
"""Merge the parsed user and local configuration files.
diff --git a/tests/unit/test_merged_config_parser.py b/tests/unit/test_merged_config_parser.py
index 41885e4..d446ad8 100644
--- a/tests/unit/test_merged_config_parser.py
+++ b/tests/unit/test_merged_config_parser.py
@@ -31,15 +31,16 @@ def test_parse_cli_config(optmanager, config_finder):
action='count')
parser = config.MergedConfigParser(optmanager, config_finder)
- parsed_config = parser.parse_cli_config(
- 'tests/fixtures/config_files/cli-specified.ini'
- )
+ config_file = 'tests/fixtures/config_files/cli-specified.ini'
+ parsed_config = parser.parse_cli_config(config_file)
+
+ config_dir = os.path.dirname(config_file)
assert parsed_config == {
'ignore': ['E123', 'W234', 'E111'],
'exclude': [
- os.path.abspath('foo/'),
- os.path.abspath('bar/'),
- os.path.abspath('bogus/'),
+ os.path.abspath(os.path.join(config_dir, 'foo/')),
+ os.path.abspath(os.path.join(config_dir, 'bar/')),
+ os.path.abspath(os.path.join(config_dir, 'bogus/')),
],
'quiet': 1,
}