comparison tests/test.py @ 459:9dc9cef1b9cd

Implement proper iteration support for jailed configurations
author Franz Glasner <fzglas.hg@dom66.de>
date Wed, 15 Dec 2021 08:48:37 +0100
parents a68240971d3d
children d22985d6806e
comparison
equal deleted inserted replaced
458:a68240971d3d 459:9dc9cef1b9cd
1551 def test_getkeys(self): 1551 def test_getkeys(self):
1552 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py")) 1552 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1553 jcfg = cfg.jailed(root=u"tree1") 1553 jcfg = cfg.jailed(root=u"tree1")
1554 1554
1555 self.assertEqual( 1555 self.assertEqual(
1556 set([u"key4", u"key5", u"key6"]), 1556 set([u"key4", u"key5", u"key6", u"key7", u"key8"]),
1557 set(jcfg.getkeysl(u"tree2"))) 1557 set(jcfg.getkeysl(u"tree2")))
1558 1558
1559 self.assertEqual( 1559 self.assertEqual(
1560 set([u"key4", u"key5", u"key6"]), 1560 set([u"key4", u"key5", u"key6", u"key7", u"key8"]),
1561 set(jcfg.getkeys(u"tree2"))) 1561 set(jcfg.getkeys(u"tree2")))
1562 1562
1563 self.assertEqual( 1563 self.assertEqual(
1564 set([u"key3", u"tree2"]), 1564 set([u"key3", u"tree2"]),
1565 set(jcfg.getkeysl())) 1565 set(jcfg.getkeysl()))
1714 except AttributeError: 1714 except AttributeError:
1715 pass 1715 pass
1716 else: 1716 else:
1717 self.fail("AttributeError expected") 1717 self.fail("AttributeError expected")
1718 1718
1719 def test_iteration_dict(self):
1720 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1721 jcfg = cfg.jailed(rootpath=(u"tree1",))
1722 s = []
1723 for k in jcfg:
1724 s.append(k)
1725 s.sort()
1726 self.assertEqual([u"key3", u"tree2"], s)
1727
1728 def test_iteration_list(self):
1729 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1730 jcfg = cfg.jailed(rootpath=(u"tree1", u"tree2", u"key8"))
1731 s = []
1732 for k in jcfg:
1733 s.append(k)
1734 s.sort()
1735 self.assertEqual([u"in the root namespace", u"val1", u"val2"], s)
1736
1719 1737
1720 if __name__ == "__main__": 1738 if __name__ == "__main__":
1721 unittest.main() 1739 unittest.main()