1
0
mirror of https://github.com/deadc0de6/dotdrop.git synced 2026-02-08 10:14:17 +00:00

Adding tests for overrided settings in imported_configs

This commit is contained in:
Davide Laezza
2019-04-22 14:52:24 +02:00
parent 124336ed57
commit 9925ec3928
3 changed files with 173 additions and 17 deletions

View File

@@ -467,12 +467,14 @@ class Cfg:
return True
def _merge_cfg(self, config_path):
# Parsing external config file
try:
ext_config = Cfg(self._abs_path(config_path))
except ValueError:
raise ValueError(
'external config file not found: {}'.format(config_path))
# Merging lists in config settings
list_settings = (
(k, v)
for k, v in ext_config.lnk_settings.items()
@@ -481,6 +483,7 @@ class Cfg:
for k, v in list_settings:
self.lnk_settings[k] += v
# Merging dictionaries
ext_members = (
(name, member)
for name, member in inspect.getmembers(ext_config, is_dict)
@@ -491,6 +494,16 @@ class Cfg:
ext_member.update(self_member)
setattr(self, name, ext_member)
# Merging variables
self_content, ext_content = self.content, ext_config.content
(ext_content[self.key_variables]
.update(self_content[self.key_variables]))
self.content[self.key_variables] = ext_content[self.key_variables]
(ext_content[self.key_dynvariables]
.update(self_content[self.key_dynvariables]))
self.content[self.key_dynvariables] = \
ext_content[self.key_dynvariables]
def _load_ext_variables(self, paths, profile=None):
"""load external variables"""
variables = {}