Mercurial > hgrepos > Python > libs > ConfigMix
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() |
