# HG changeset patch # User Franz Glasner # Date 1625813610 -7200 # Node ID 1941f0188e81297ca06c47da762693f6bddffe44 # Parent 699072335f63bf6b7b7d3e771a6f86f10ad1c8b1 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. diff -r 699072335f63 -r 1941f0188e81 CHANGES.txt --- 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) ~~~~~~~~~~~~~~~~~ diff -r 699072335f63 -r 1941f0188e81 configmix/config.py --- 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. diff -r 699072335f63 -r 1941f0188e81 tests/test.py --- 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):