Mercurial > hgrepos > Python > libs > ConfigMix
changeset 364:1941f0188e81
FIX: Handle a "default" keyword parameter in ".getvar()" properly.
It happened to be a formal parameter but was not used properly within the
method body.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Fri, 09 Jul 2021 08:53:30 +0200 |
| parents | 699072335f63 |
| children | c404e5548e4b |
| files | CHANGES.txt configmix/config.py tests/test.py |
| diffstat | 3 files changed, 30 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/CHANGES.txt Fri Jun 25 00:57:21 2021 +0200 +++ b/CHANGES.txt Fri Jul 09 08:53:30 2021 +0200 @@ -12,6 +12,13 @@ Pre-1.0 Series -------------- +non yet (none yet) +~~~~~~~~~~~~~~~~~~ + +- **[bugfix]** Handle the `default` keyword parameter in + :py:meth:`configmix.config.Configuration.getvar` properly. + + 0.15 (2021-06-25) ~~~~~~~~~~~~~~~~~
--- a/configmix/config.py Fri Jun 25 00:57:21 2021 +0200 +++ b/configmix/config.py Fri Jul 09 08:53:30 2021 +0200 @@ -118,7 +118,7 @@ varnameparts = [self.unquote(vp) for vp in varname.split(self._HIER_SEPARATOR)] else: varnameparts = (varname,) - return self.getvarl(*varnameparts, namespace=varns) + return self.getvarl(*varnameparts, namespace=varns, default=default) def getvarl_s(self, *names, **kwds): """Get a variable - including variables from other namespaces.
--- a/tests/test.py Fri Jun 25 00:57:21 2021 +0200 +++ b/tests/test.py Fri Jul 09 08:53:30 2021 +0200 @@ -440,6 +440,28 @@ x = cfg.expand_variable("{{intl.cache.items|Empty}}") self.assertEqual(10, x) + def test13_keyerror(self): + cfg = self._load(os.path.join(TESTDATADIR, "conf20.yml")) + self.assertRaises(KeyError, cfg.getvar_s, "non.existing.key") + + def test14_getvar_with_default(self): + cfg = self._load(os.path.join(TESTDATADIR, "conf20.yml")) + self.assertEqual("999", cfg.getvar("non.existing.key", default="999")) + + def test15_getvar_s_with_default(self): + cfg = self._load(os.path.join(TESTDATADIR, "conf20.yml")) + self.assertEqual("999", cfg.getvar_s("non.existing.key", + default="999")) + + def test16_getintvar_s_with_default(self): + cfg = self._load(os.path.join(TESTDATADIR, "conf20.yml")) + self.assertEqual(9999, cfg.getintvar_s("non.existing.key", + default=9999)) + def test17_getintvar_s_with_default(self): + cfg = self._load(os.path.join(TESTDATADIR, "conf20.yml")) + self.assertFalse(cfg.getboolvar_s("non.existing.key", + default="false")) + class T02LoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase):
