changeset 140:d8d47893df5b

Unittests for custom configuration filename extensions
author Franz Glasner <hg@dom66.de>
date Fri, 06 Apr 2018 22:54:45 +0200
parents c87b0dc54e1d
children 647782859ae1
files tests/data/conf30.conf tests/test.py
diffstat 2 files changed, 48 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/data/conf30.conf	Fri Apr 06 22:54:45 2018 +0200
@@ -0,0 +1,5 @@
+# -*- coding: utf-8; mode: yaml; indent-tabs-mode: nil; -*-
+%YAML 1.1
+---
+
+key-new: new value
--- 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()