comparison 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
comparison
equal deleted inserted replaced
438:37424d1f8dcf 439:bd27da55483a
782 cfg = self._load(os.path.join(TESTDATADIR, "conf10.py")) 782 cfg = self._load(os.path.join(TESTDATADIR, "conf10.py"))
783 self.assertEqual( 783 self.assertEqual(
784 set([u"key1", u"key2", u"tree1"]), 784 set([u"key1", u"key2", u"tree1"]),
785 set(cfg.getkeysl())) 785 set(cfg.getkeysl()))
786 786
787 def test40_contains_with_string(self):
788 cfg = self._load(os.path.join(TESTDATADIR, "conf10.py"))
789 self.assertTrue(u"tree1" in cfg)
790 self.assertFalse(u"non-existing-tree1" in cfg)
791
792 def test41_contains_with_path(self):
793 cfg = self._load(os.path.join(TESTDATADIR, "conf10.py"))
794 self.assertTrue((u"tree1", u"tree2") in cfg)
795 self.assertFalse((u"tree1", u"non-existing-tree2") in cfg)
796
787 797
788 class T02LoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase): 798 class T02LoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase):
789 799
790 def setUp(self): 800 def setUp(self):
791 self._load = configmix.load 801 self._load = configmix.load
1583 except KeyError: 1593 except KeyError:
1584 pass 1594 pass
1585 else: 1595 else:
1586 self.fail("KeyError expected") 1596 self.fail("KeyError expected")
1587 1597
1598 def test_contains_with_string(self):
1599 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1600 jcfg = cfg.jailed(rootpath=(u"tree1",))
1601
1602 self.assertTrue(u"key3" in jcfg)
1603 self.assertFalse(u"key3-not" in jcfg)
1604
1605 def test_contains_with_path(self):
1606 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1607 jcfg = cfg.jailed(rootpath=(u"tree1",))
1608
1609 self.assertTrue((u"key3",) in jcfg)
1610 self.assertFalse((u"key3-not",) in jcfg)
1611
1612 self.assertTrue((u"tree2", u"key5") in jcfg)
1613 self.assertFalse((u"tree2", u"no-key") in jcfg)
1614
1588 1615
1589 if __name__ == "__main__": 1616 if __name__ == "__main__":
1590 unittest.main() 1617 unittest.main()