diff tests/test.py @ 97:1b4d95f60650

Build a tree-ish configuration from an INI style configuration file
author Franz Glasner <hg@dom66.de>
date Sun, 18 Mar 2018 19:15:01 +0100
parents a0ed95975980
children 1c2f8a96dec2
line wrap: on
line diff
--- a/tests/test.py	Sun Mar 18 19:13:35 2018 +0100
+++ b/tests/test.py	Sun Mar 18 19:15:01 2018 +0100
@@ -38,6 +38,17 @@
         self.assertTrue(isinstance(cfg.get("key5"), bool))
         self.assertEqual(255, cfg.get("key6"))
 
+    def __check_tree(self, cfg):
+        self.assertEqual(u("in the root namespace"),
+                         cfg.get("key1"))
+        self.assertEqual(u("in the root namespace -- too"),
+                         cfg.get("key2"))
+        self.assertEqual(32,
+                         cfg["tree1"]["key3"])
+        self.assertEqual(u("get this as `tree1.tree2.key4'"),
+                         cfg["tree1"]["tree2"]["key4"])
+        self.assertTrue(cfg["tree1"]["tree2"]["key5"])
+
     def test01_ini_types(self):
         cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini"))
         self.__check_types(cfg)
@@ -65,6 +76,19 @@
         self.assertTrue(isinstance(cfg.get("key1"), type(u(''))))
         self.assertTrue(cfg.get("_key2") is None)
 
+    def test06_ini_tree(self):
+        cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf10.ini"))
+        self.__check_tree(cfg)
+
+    def test07_py_tree(self):
+        cfg = configmix.py.load(os.path.join(TESTDATADIR, "conf10.py"))
+        self.__check_tree(cfg)
+
+    def test08_yaml_tree(self):
+        with open(os.path.join(TESTDATADIR, "conf10.yml"), "rt") as f:
+            cfg = configmix.yaml.safe_load(f)
+            self.__check_tree(cfg)
+
 
 if __name__ == "__main__":
     unittest.main()