config: Reraise ConfigError from ConfigObjError.

Closes #8801
This commit is contained in:
David de la Iglesia Castro
2023-01-12 18:11:54 +01:00
parent 5169205229
commit f507e4d9c0
2 changed files with 16 additions and 1 deletions
+3 -1
View File
@@ -169,7 +169,7 @@ class Config(dict):
return self.fs if level == "repo" else self.wfs
def _load_config(self, level):
from configobj import ConfigObj
from configobj import ConfigObj, ConfigObjError
filename = self.files[level]
fs = self._get_fs(level)
@@ -180,6 +180,8 @@ class Config(dict):
conf_obj = ConfigObj(fobj)
except UnicodeDecodeError as exc:
raise ConfigError(str(exc)) from exc
except ConfigObjError as exc:
raise ConfigError(str(exc)) from exc
else:
conf_obj = ConfigObj()
return _parse_named(_lower_keys(conf_obj.dict()))
+13
View File
@@ -81,3 +81,16 @@ def test_load_unicode_error(tmp_dir, dvc, mocker):
with pytest.raises(ConfigError):
with config.edit():
pass
def test_load_configob_error(tmp_dir, dvc, mocker):
from configobj import ConfigObjError
config = Config(validate=False)
mocker.patch(
"configobj.ConfigObj",
side_effect=ConfigObjError(),
)
with pytest.raises(ConfigError):
with config.edit():
pass