diff tests/test.py @ 442:94cf5a8722d6

Add proper .get() support for jailed and unjailed configurations
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 10 Dec 2021 03:00:11 +0100
parents 9d20fab53a19
children b95c12781497
line wrap: on
line diff
--- a/tests/test.py	Fri Dec 10 02:20:54 2021 +0100
+++ b/tests/test.py	Fri Dec 10 03:00:11 2021 +0100
@@ -794,6 +794,23 @@
         self.assertTrue((u"tree1", u"tree2") in cfg)
         self.assertFalse((u"tree1", u"non-existing-tree2") in cfg)
 
+    def test43_get_with_string(self):
+        cfg = self._load(os.path.join(TESTDATADIR, "conf10.py"))
+        self.assertEqual(
+            u"in the root namespace",
+            cfg.get(u"key1"))
+        self.assertTrue(
+            cfg.get(u"key1-not", default=None) is None)
+
+    def test43_get_with_path(self):
+        cfg = self._load(os.path.join(TESTDATADIR, "conf10.py"))
+        self.assertEqual(
+            0x20,
+            cfg.get((u"tree1", u"key3")))
+        self.assertEqual(
+            0x1,
+            cfg.get((u"no", u"key"), default=0x1))
+
 
 class T02LoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase):
 
@@ -1624,6 +1641,45 @@
         self.assertTrue([u"tree2", u"key5"] in jcfg)
         self.assertFalse([u"tree2", u"no-key"] in jcfg)
 
+    def test_get_with_string(self):
+        cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
+        jcfg = cfg.jailed(rootpath=(u"tree1",))
+
+        self.assertEqual(
+            0x20,
+            jcfg.get(u"key3"))
+        self.assertEqual(
+            0x2,
+            jcfg.get(u"no-key3", default=0x2))
+
+    def test_get_with_path(self):
+        cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
+        jcfg = cfg.jailed(rootpath=(u"tree1",))
+
+        self.assertEqual(
+            0x20,
+            jcfg.get((u"key3",)))
+        self.assertEqual(
+            0x3,
+            jcfg.get((u"no-key",), default=0x3))
+        self.assertEqual(
+            u"off",
+            jcfg.get((u"tree2", u"key6")))
+        self.assertEqual(
+            u"the default",
+            jcfg.get((u"no", u"key"), default=u"the default"))
+        self.assertTrue(
+            jcfg.get((u"no", u"key")) is None)
+
+        self.assertEqual(
+            u"off",
+            jcfg.get([u"tree2", u"key6"]))
+        self.assertEqual(
+            u"the default",
+            jcfg.get([u"no", u"key"], default=u"the default"))
+        self.assertTrue(
+            jcfg.get([u"no", u"key"]) is None)
+
 
 if __name__ == "__main__":
     unittest.main()