diff tests/test.py @ 140:d8d47893df5b

Unittests for custom configuration filename extensions
author Franz Glasner <hg@dom66.de>
date Fri, 06 Apr 2018 22:54:45 +0200
parents 2f2e819e8d17
children 7e6ec99d5ff5
line wrap: on
line diff
--- a/tests/test.py	Fri Apr 06 22:28:45 2018 +0200
+++ b/tests/test.py	Fri Apr 06 22:54:45 2018 +0200
@@ -251,5 +251,48 @@
         self.assertNotEqual(id(cfg), id(cfg2))
 
 
+class T04CustomExtension(unittest.TestCase):
+
+    def setUp(self):
+        self._reset()
+
+    def tearDown(self):
+        self._reset()
+
+    def _reset(self):
+        configmix.clear_loader()
+        for ext in configmix.default_loaders:
+            configmix.set_loader(ext, configmix.default_loaders[ext])
+
+    def test01_additional(self):
+        configmix.set_loader(".conf", configmix.default_loaders[".yml"])
+        cfg = configmix.load(
+            os.path.join(TESTDATADIR, "conf1.ini"),
+            os.path.join(TESTDATADIR, "conf30.conf"))
+        self.assertEqual(u("Umlaute: ÄÖÜäöüß"), cfg.getvar_s("key7"))
+        self.assertEqual(u("new value"), cfg.getvar_s("key-new"))
+
+    def test02_only_style_wrong_style(self):
+        configmix.clear_loader()
+        configmix.set_loader(".conf", configmix.default_loaders[".yml"])
+
+        def _ld():
+            return configmix.load(os.path.join(TESTDATADIR, "conf1.ini"),
+                                  os.path.join(TESTDATADIR, "conf30.conf"))
+
+        self.assertRaises(ValueError, _ld)
+
+    def test03_only_style_corrrect_style(self):
+        configmix.clear_loader()
+        configmix.set_loader(".conf", configmix.default_loaders[".yml"])
+        cfg = configmix.load(os.path.join(TESTDATADIR, "conf30.conf"))
+        self.assertEqual(u("new value"), cfg.getvar_s("key-new"))
+
+        def _g():
+            return cfg.getvar_s("key7")
+            
+        self.assertRaises(KeyError, _g)
+
+
 if __name__ == "__main__":
     unittest.main()