changeset 657:213f0ec3bbbc

Test list access with negative indexes
author Franz Glasner <f.glasner@feldmann-mg.com>
date Mon, 30 May 2022 13:19:19 +0200
parents 2b1c7a68f913
children 6102b767fc69
files tests/test.py
diffstat 1 files changed, 22 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test.py	Mon May 30 09:31:29 2022 +0200
+++ b/tests/test.py	Mon May 30 13:19:19 2022 +0200
@@ -967,6 +967,20 @@
                 idx,
                 cfg.getvar_s(u"the-list.~%d~.entry" % (idx, )))
 
+    def test51_neg_index_access_to_lists_with_subdicts(self):
+        cfg = self._load(os.path.join(TESTDATADIR,
+                                      "index-access-for-jails.yml"))
+        self.assertEqual(
+            2,
+            cfg.getvarl_s(u"the-list", -1, u"entry"))
+
+    def test52_neg_index_access_to_lists_with_subdicts(self):
+        cfg = self._load(os.path.join(TESTDATADIR,
+                                      "index-access-for-jails.yml"))
+        self.assertEqual(
+            2,
+            cfg.getvar_s(u"the-list.~%d~.entry" % (-1, )))
+
 
 class T02LoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase):
 
@@ -1915,6 +1929,14 @@
             self.assertEqual((u"the-list", idx), jcfg._path)
             self.assertEqual(u"the-list.~%d~." % (idx, ), jcfg._pathstr)
 
+    def test_negative_index_jail_access(self):
+        cfg = configmix.load(os.path.join(
+            TESTDATADIR, "index-access-for-jails.yml"))
+        jcfg = cfg.jailed(rootpath=(u"the-list", -1))
+        self.assertEqual(2, jcfg.getvarl_s("entry"))
+        self.assertEqual((u"the-list", -1), jcfg._path)
+        self.assertEqual(u"the-list.~-1~.", jcfg._pathstr)
+
     def test_index_jail_access_with_strpath(self):
         cfg = configmix.load(os.path.join(
             TESTDATADIR, "index-access-for-jails.yml"))