comparison tests/test.py @ 437:bbc5b64e137a

- Dict-level access to a configuration key now does variable interpolation. - Basic dict-level access for jailed configurations
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 10 Dec 2021 01:33:37 +0100
parents b96f49c9c76b
children bd27da55483a
comparison
equal deleted inserted replaced
436:3ae097e04879 437:bbc5b64e137a
1013 self._cfg.getvarl_s("wsgi", "profiler", "params", "params", "evalex")) 1013 self._cfg.getvarl_s("wsgi", "profiler", "params", "params", "evalex"))
1014 self.assertEqual( 1014 self.assertEqual(
1015 "werkzeug", 1015 "werkzeug",
1016 self._cfg.getvarl_s("wsgi", "profiler", "params", "type")) 1016 self._cfg.getvarl_s("wsgi", "profiler", "params", "type"))
1017 1017
1018 def test03_no_direct_attribute_access_to_expanded_references(self): 1018 def test03_direct_attribute_access_to_expanded_references(self):
1019 self.assertEqual( 1019 self.assertEqual(
1020 "{{ref:#wsgi.debugger}}", 1020 u"werkzeug",
1021 self._cfg.wsgi.profiler.params) 1021 self._cfg.wsgi.profiler.params.type)
1022 try: 1022
1023 self._cfg.wsgi.profiler.params.type 1023 def test03b_dict_like_access_expands_references(self):
1024 except AttributeError: 1024 self.assertEqual(
1025 pass 1025 u"werkzeug",
1026 else: 1026 self._cfg[(u"wsgi", u"profiler", u"params", u"type")])
1027 self.fail("no attribute error seen") 1027
1028 def test03c_dict_like_access_with_single_string_key(self):
1029 self.assertTrue(
1030 u"profiler" in self._cfg[u"wsgi"])
1028 1031
1029 def test04_indirect_recursive_references(self): 1032 def test04_indirect_recursive_references(self):
1030 self.assertEqual( 1033 self.assertEqual(
1031 "werkzeug", 1034 "werkzeug",
1032 self._cfg.getvar_s("testref.here.params.type")) 1035 self._cfg.getvar_s("testref.here.params.type"))
1554 else: 1557 else:
1555 self.assertEqual( 1558 self.assertEqual(
1556 r"_JailedConfiguration(rootpath=('tree1', 'tree2'))", 1559 r"_JailedConfiguration(rootpath=('tree1', 'tree2'))",
1557 repr(jcfg)) 1560 repr(jcfg))
1558 1561
1562 def test_dict_level_access_with_single_key(self):
1563 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1564 jcfg = cfg.jailed(rootpath=(u"tree1", u"tree2"))
1565 self.assertEqual(
1566 u"off",
1567 jcfg[u"key6"])
1568 try:
1569 jcfg[u"key3"]
1570 except KeyError:
1571 pass
1572 else:
1573 self.fail("KeyError expected")
1574
1575 def test_dict_level_access_with_path(self):
1576 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1577 jcfg = cfg.jailed(rootpath=(u"tree1", u"tree2"))
1578 self.assertEqual(
1579 u"get this as `tree1.tree2.key4'",
1580 jcfg[(u"key4",)])
1581 try:
1582 jcfg[(u"key3",)]
1583 except KeyError:
1584 pass
1585 else:
1586 self.fail("KeyError expected")
1587
1559 1588
1560 if __name__ == "__main__": 1589 if __name__ == "__main__":
1561 unittest.main() 1590 unittest.main()