Source code for jasy.test.config

#!/usr/bin/env python3

import sys
import os
import unittest
import logging
import tempfile

# Extend PYTHONPATH with local 'lib' folder
if __name__ == "__main__":
    jasyroot = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), os.pardir, os.pardir, os.pardir))
    sys.path.insert(0, jasyroot)
    print("Running from %s..." % jasyroot)

import jasy.core.Config as Config


[docs]class Tests(unittest.TestCase):
[docs] def test_write_json(self): tempDirectory = tempfile.TemporaryDirectory().name os.makedirs(tempDirectory) Config.writeConfig([{"one": 1, "two": 2}, {"three": 3, "four": 4}], os.path.join(tempDirectory, "test.json")) self.assertEqual(Config.findConfig(os.path.join(tempDirectory, "test.json")), os.path.join(tempDirectory, "test.json"))
[docs] def test_write_and_read_json(self): tempDirectory = tempfile.TemporaryDirectory().name os.makedirs(tempDirectory) Config.writeConfig([{"one": 10 - 9, "two": 5 - 3}, {"three": 1 + 1 + 1, "four": 2 * 2}], os.path.join(tempDirectory, "test.json")) data = Config.loadConfig(os.path.join(tempDirectory, "test.json")) self.assertEqual(data, [{'two': 2, 'one': 1}, {'four': 4, 'three': 3}])
[docs] def test_write_yaml(self): tempDirectory = tempfile.TemporaryDirectory().name os.makedirs(tempDirectory) Config.writeConfig([{"one": 1, "two": 2}, {"three": 3, "four": 4}], os.path.join(tempDirectory, "test.yaml")) self.assertEqual(Config.findConfig(os.path.join(tempDirectory, "test.yaml")), os.path.join(tempDirectory, "test.yaml"))
[docs] def test_write_and_read_yaml(self): tempDirectory = tempfile.TemporaryDirectory().name os.makedirs(tempDirectory) Config.writeConfig([{"one": 10 - 9, "two": 5 - 3}, {"three": 1 + 1 + 1, "four": 2 * 2}], os.path.join(tempDirectory, "test.yaml")) data = Config.loadConfig(os.path.join(tempDirectory, "test.yaml")) self.assertEqual(data, [{'two': 2, 'one': 1}, {'four': 4, 'three': 3}])
[docs] def test_matching_types(self): self.assertTrue(Config.matchesType(42, "int")) self.assertTrue(Config.matchesType(11.0, "float")) self.assertTrue(Config.matchesType(11.1, "float")) self.assertTrue(Config.matchesType("hello", "string")) self.assertTrue(Config.matchesType(False, "bool")) self.assertTrue(Config.matchesType([{"one": 10 - 9, "two": 5 - 3}, {"three": 1 + 1 + 1, "four": 2 * 2}], "list")) self.assertTrue(Config.matchesType({"one": 10 - 9, "two": 5 - 3}, "dict"))
[docs] def test_config_object_hasdata(self): config = Config.Config({'two': 2, 'one': 1, 'ten': 10}) self.assertTrue(config.has('two'))
[docs] def test_config_object_getdata(self): config = Config.Config({'two': 2, 'one': 1, 'ten': 10}) self.assertEqual(config.get('ten'), 10)
[docs] def test_config_object_setdata(self): config = Config.Config({'two': 2, 'one': 1, 'ten': 10}) config.set('ten', 15) self.assertEqual(config.get('ten'), 15)
[docs] def test_config_object_getdata_withdot(self): config = Config.Config({'foo': {'yeah': 42}, 'one': 1}) self.assertEqual(config.get('foo.yeah'), 42)
[docs] def test_config_object_setdata_withdot(self): config = Config.Config({'foo': {'yeah': 42}, 'one': 1}) config.set('foo.yeah', 1337) self.assertEqual(config.get('foo')['yeah'], 1337)
if __name__ == '__main__': logging.getLogger().setLevel(logging.ERROR) suite = unittest.TestLoader().loadTestsFromTestCase(Tests) unittest.TextTestRunner(verbosity=2).run(suite)