# HG changeset patch # User Franz Glasner # Date 1523048085 -7200 # Node ID d8d47893df5bc5e72a4a39e3854ec6b564c9dfd9 # Parent c87b0dc54e1d5b6a79b9175538f8628d90436a0e Unittests for custom configuration filename extensions diff -r c87b0dc54e1d -r d8d47893df5b tests/data/conf30.conf --- /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 diff -r c87b0dc54e1d -r d8d47893df5b tests/test.py --- 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()