Mercurial > hgrepos > Python > libs > ConfigMix
changeset 467:9fcdc42a0457
len-support for jailed configurations: implement a proper __len__() method
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Wed, 15 Dec 2021 22:59:05 +0100 |
| parents | 32e228696a63 |
| children | 95df1a10259a |
| files | configmix/config.py docs/apidoc.rst tests/test.py |
| diffstat | 3 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/configmix/config.py Wed Dec 15 09:34:16 2021 +0100 +++ b/configmix/config.py Wed Dec 15 22:59:05 2021 +0100 @@ -943,6 +943,9 @@ def __iter__(self): return iter(self._base.getvarl_s(*self._path)) + def __len__(self): + return len(self._base.getvarl(*self._path)) + if PY2: def __nonzero__(self):
--- a/docs/apidoc.rst Wed Dec 15 09:34:16 2021 +0100 +++ b/docs/apidoc.rst Wed Dec 15 22:59:05 2021 +0100 @@ -33,7 +33,7 @@ .. autoclass:: _JailedConfiguration :members: :undoc-members: - :special-members: __getitem__, __getattr__, __bool__, __iter__ + :special-members: __getitem__, __getattr__, __len__, __bool__, __iter__ Module :mod:`configmix.constants`
--- a/tests/test.py Wed Dec 15 09:34:16 2021 +0100 +++ b/tests/test.py Wed Dec 15 22:59:05 2021 +0100 @@ -1738,21 +1738,25 @@ cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py")) jcfg = cfg.jailed(rootpath=(u"tree1", u"tree2", u"key7")) self.assertFalse(jcfg) + self.assertEqual(0, len(jcfg)) def test_boolean_context_list_true(self): cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py")) jcfg = cfg.jailed(rootpath=(u"tree1", u"tree2", u"key8")) self.assertTrue(jcfg) + self.assertEqual(3, len(jcfg)) def test_boolean_context_dict_false(self): cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py")) jcfg = cfg.jailed(rootpath=(u"tree1", u"tree2", u"key9")) self.assertFalse(jcfg) + self.assertEqual(0, len(jcfg)) def test_boolean_context_dict_true(self): cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py")) jcfg = cfg.jailed(rootpath=(u"tree1", u"tree2")) self.assertTrue(jcfg) + self.assertEqual(6, len(jcfg)) def test_list_by_index(self): cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
