diff tests/test.py @ 439:bd27da55483a

Optimized __contains__() implementation for jailed and unjailed configurations
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 10 Dec 2021 02:15:00 +0100
parents bbc5b64e137a
children 9d20fab53a19
line wrap: on
line diff
--- a/tests/test.py	Fri Dec 10 01:44:12 2021 +0100
+++ b/tests/test.py	Fri Dec 10 02:15:00 2021 +0100
@@ -784,6 +784,16 @@
             set([u"key1", u"key2", u"tree1"]),
             set(cfg.getkeysl()))
 
+    def test40_contains_with_string(self):
+        cfg = self._load(os.path.join(TESTDATADIR, "conf10.py"))
+        self.assertTrue(u"tree1" in cfg)
+        self.assertFalse(u"non-existing-tree1" in cfg)
+
+    def test41_contains_with_path(self):
+        cfg = self._load(os.path.join(TESTDATADIR, "conf10.py"))
+        self.assertTrue((u"tree1", u"tree2") in cfg)
+        self.assertFalse((u"tree1", u"non-existing-tree2") in cfg)
+
 
 class T02LoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase):
 
@@ -1585,6 +1595,23 @@
         else:
             self.fail("KeyError expected")
 
+    def test_contains_with_string(self):
+        cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
+        jcfg = cfg.jailed(rootpath=(u"tree1",))
+
+        self.assertTrue(u"key3" in jcfg)
+        self.assertFalse(u"key3-not" in jcfg)
+
+    def test_contains_with_path(self):
+        cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
+        jcfg = cfg.jailed(rootpath=(u"tree1",))
+
+        self.assertTrue((u"key3",) in jcfg)
+        self.assertFalse((u"key3-not",) in jcfg)
+
+        self.assertTrue((u"tree2", u"key5") in jcfg)
+        self.assertFalse((u"tree2", u"no-key") in jcfg)
+
 
 if __name__ == "__main__":
     unittest.main()