Mercurial > hgrepos > Python > libs > ConfigMix
diff 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 |
line wrap: on
line diff
--- a/tests/test.py Fri Dec 10 01:05:34 2021 +0100 +++ b/tests/test.py Fri Dec 10 01:33:37 2021 +0100 @@ -1015,16 +1015,19 @@ "werkzeug", self._cfg.getvarl_s("wsgi", "profiler", "params", "type")) - def test03_no_direct_attribute_access_to_expanded_references(self): + def test03_direct_attribute_access_to_expanded_references(self): + self.assertEqual( + u"werkzeug", + self._cfg.wsgi.profiler.params.type) + + def test03b_dict_like_access_expands_references(self): self.assertEqual( - "{{ref:#wsgi.debugger}}", - self._cfg.wsgi.profiler.params) - try: - self._cfg.wsgi.profiler.params.type - except AttributeError: - pass - else: - self.fail("no attribute error seen") + u"werkzeug", + self._cfg[(u"wsgi", u"profiler", u"params", u"type")]) + + def test03c_dict_like_access_with_single_string_key(self): + self.assertTrue( + u"profiler" in self._cfg[u"wsgi"]) def test04_indirect_recursive_references(self): self.assertEqual( @@ -1556,6 +1559,32 @@ r"_JailedConfiguration(rootpath=('tree1', 'tree2'))", repr(jcfg)) + def test_dict_level_access_with_single_key(self): + cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py")) + jcfg = cfg.jailed(rootpath=(u"tree1", u"tree2")) + self.assertEqual( + u"off", + jcfg[u"key6"]) + try: + jcfg[u"key3"] + except KeyError: + pass + else: + self.fail("KeyError expected") + + def test_dict_level_access_with_path(self): + cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py")) + jcfg = cfg.jailed(rootpath=(u"tree1", u"tree2")) + self.assertEqual( + u"get this as `tree1.tree2.key4'", + jcfg[(u"key4",)]) + try: + jcfg[(u"key3",)] + except KeyError: + pass + else: + self.fail("KeyError expected") + if __name__ == "__main__": unittest.main()
