# HG changeset patch # User Franz Glasner # Date 1652424828 -7200 # Node ID fe1299825a9ae51c7d5b755ac21255d272afb710 # Parent 0d8c59610d894b14912be9ceb6096cf53a95ef88 Tests for indexed accesses (jail and non-jail) diff -r 0d8c59610d89 -r fe1299825a9a tests/test.py --- a/tests/test.py Fri May 13 08:15:43 2022 +0200 +++ b/tests/test.py Fri May 13 08:53:48 2022 +0200 @@ -457,7 +457,7 @@ def test13_keyerror(self): cfg = self._load(os.path.join(TESTDATADIR, "conf20.yml")) self.assertRaises(KeyError, cfg.getvar_s, "non.existing.key") - self.assertRaises(KeyError, cfg.getvar_s, "non.existing.key") + self.assertRaises(KeyError, cfg.getvar_s, "non.existing.key") def test13a_keyerror_without_cache(self): cfg = self._load(os.path.join(TESTDATADIR, "conf20.yml")) @@ -929,14 +929,29 @@ def test46_reenable_cache(self): cfg = self._load(os.path.join(TESTDATADIR, "conf20.yml")) - self.assertTrue(cfg.getvarl() is cfg) + self.assertTrue(cfg.getvarl() is cfg) cfg.disable_cache() - self.assertTrue(cfg.getvarl() is cfg) + self.assertTrue(cfg.getvarl() is cfg) cfg.clear_cache() - self.assertTrue(cfg.getvarl() is cfg) + self.assertTrue(cfg.getvarl() is cfg) cfg.enable_cache() self.assertTrue(cfg.getvarl() is cfg) + def test47_indexed_access_to_lists(self): + cfg = self._load(os.path.join(TESTDATADIR, "conf20.yml")) + for i in range(4): + self.assertEqual( + i, + cfg.getvarl_s(u"test", u"List", i)) + + def test48_index_access_to_lists_with_subdicts(self): + cfg = self._load(os.path.join(TESTDATADIR, + "index-access-for-jails.yml")) + for idx in range(len(cfg.getvarl(u"the-list"))): + self.assertEqual( + idx, + cfg.getvarl_s(u"the-list", idx, u"entry")) + class T02LoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase): @@ -1875,6 +1890,14 @@ self.assertEqual(u"val2", jcfg[1]) self.assertEqual(u"in the root namespace", jcfg[2]) + def test_index_jail_access(self): + cfg = configmix.load(os.path.join( + TESTDATADIR, "index-access-for-jails.yml")) + for idx in range(len(cfg.getvarl(u"the-list"))): + jcfg = cfg.jailed(rootpath=(u"the-list", idx)) + self.assertEqual(1, len(jcfg)) + self.assertEqual(idx, jcfg.getvarl_s(u"entry")) + class _TParserMixin: def test_quote_and_unquote_empty(self):