Mercurial > hgrepos > Python > libs > ConfigMix
diff tests/test.py @ 93:84b9578cacce
Start with unit tests
| author | Franz Glasner <hg@dom66.de> |
|---|---|
| date | Sun, 18 Mar 2018 14:44:41 +0100 |
| parents | |
| children | a0ed95975980 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test.py Sun Mar 18 14:44:41 2018 +0100 @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- + +import sys +import os +import unittest + +sys.path.insert( + 0, + os.path.abspath( + os.path.normpath(os.path.join(os.path.dirname(__file__), "..")))) + +import configmix +import configmix.ini +import configmix.yaml +import configmix.py +from configmix.compat import u + + +TESTDATADIR = os.path.join( + os.path.abspath(os.path.dirname(__file__)), + "data") + + +class T01Basic(unittest.TestCase): + + """Check with low-level internal interfaces""" + + def __check_types(self, cfg): + self.assertEqual(u("the value"), + cfg.get("key1")) + self.assertTrue(isinstance(cfg.get("key1"), type(u('')))) + self.assertEqual(2, cfg.get("key2")) + self.assertEqual(5.7, cfg.get("key3")) + self.assertTrue(isinstance(cfg.get("key1"), type(u('')))) + self.assertTrue(cfg.get("key4")) + self.assertTrue(isinstance(cfg.get("key4"), bool)) + self.assertFalse(cfg.get("key5")) + self.assertTrue(isinstance(cfg.get("key5"), bool)) + + def test01_ini_types(self): + cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) + self.__check_types(cfg) + + def test02_py_types(self): + cfg = configmix.py.load(os.path.join(TESTDATADIR, "conf1.py")) + self.__check_types(cfg) + + def test03_yaml_types(self): + with open(os.path.join(TESTDATADIR, "conf1.yml"), "rt") as f: + cfg = configmix.yaml.safe_load(f) + self.__check_types(cfg) + + def test04_py_export_all(self): + # When __all__ is given only it's keys are exported + cfg = configmix.py.load(os.path.join(TESTDATADIR, "conf2.py")) + self.assertEqual(u("the next value"), cfg.get("key1")) + self.assertTrue(isinstance(cfg.get("key1"), type(u('')))) + self.assertTrue(cfg.get("key2") is None) + + def test05_py_hide_private(self): + # When no __all__ is given all symbols with leading "_" are hidden + cfg = configmix.py.load(os.path.join(TESTDATADIR, "conf3.py")) + self.assertEqual(u("the next value "), cfg.get("key1")) + self.assertTrue(isinstance(cfg.get("key1"), type(u('')))) + self.assertTrue(cfg.get("_key2") is None) + + +if __name__ == "__main__": + unittest.main()
