changeset 651:fe1299825a9a

Tests for indexed accesses (jail and non-jail)
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 13 May 2022 08:53:48 +0200
parents 0d8c59610d89
children 64cf6710c0db
files tests/test.py
diffstat 1 files changed, 27 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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):