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()