diff options
| author | 2019-12-25 19:40:28 -0500 | |
|---|---|---|
| committer | 2019-12-25 19:40:28 -0500 | |
| commit | f9a1a9dcb7df977eeac9544786df9c0b93795815 (patch) | |
| tree | 8cb69cf7685da8d7e4deb7dc1d6b209098e1ddfb /test/test_config.py | |
| parent | 0c73e982fa596da07f23b377621ab894a9e64884 (diff) | |
New upstream version 1.12.1upstream/1.12.1
Diffstat (limited to 'test/test_config.py')
| -rw-r--r-- | test/test_config.py | 140 |
1 files changed, 100 insertions, 40 deletions
diff --git a/test/test_config.py b/test/test_config.py index 8cdb3da..a9d3f54 100644 --- a/test/test_config.py +++ b/test/test_config.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# Copyright 2015-2017 Mike Fährmann +# Copyright 2015-2019 Mike Fährmann # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as @@ -16,65 +16,125 @@ import tempfile class TestConfig(unittest.TestCase): def setUp(self): - fd, self._configfile = tempfile.mkstemp() - with os.fdopen(fd, "w") as file: - file.write('{"a": "1", "b": {"a": 2, "c": "text"}}') - config.load((self._configfile,)) + config.set(() , "a", 1) + config.set(("b",) , "a", 2) + config.set(("b", "b"), "a", 3) + config.set(("b",) , "c", "text") + config.set(("b", "b"), "c", [8, 9]) def tearDown(self): config.clear() - os.remove(self._configfile) def test_get(self): - self.assertEqual(config.get(["a"]), "1") - self.assertEqual(config.get(["b", "c"]), "text") - self.assertEqual(config.get(["d"]), None) - self.assertEqual(config.get(["e", "f", "g"], 123), 123) + self.assertEqual(config.get(() , "a") , 1) + self.assertEqual(config.get(("b",) , "a") , 2) + self.assertEqual(config.get(("b", "b"), "a") , 3) + + self.assertEqual(config.get(() , "c") , None) + self.assertEqual(config.get(("b",) , "c") , "text") + self.assertEqual(config.get(("b", "b"), "c") , [8, 9]) + + self.assertEqual(config.get(("a",) , "g") , None) + self.assertEqual(config.get(("a", "a"), "g") , None) + self.assertEqual(config.get(("e", "f"), "g") , None) + self.assertEqual(config.get(("e", "f"), "g", 4), 4) def test_interpolate(self): - self.assertEqual(config.interpolate(["a"]), "1") - self.assertEqual(config.interpolate(["b", "a"]), "1") - self.assertEqual(config.interpolate(["b", "c"], "2"), "text") - self.assertEqual(config.interpolate(["b", "d"], "2"), "2") - config.set(["d"], 123) - self.assertEqual(config.interpolate(["b", "d"], "2"), 123) - self.assertEqual(config.interpolate(["d", "d"], "2"), 123) + self.assertEqual(config.interpolate(() , "a"), 1) + self.assertEqual(config.interpolate(("b",) , "a"), 1) + self.assertEqual(config.interpolate(("b", "b"), "a"), 1) + + self.assertEqual(config.interpolate(() , "c"), None) + self.assertEqual(config.interpolate(("b",) , "c"), "text") + self.assertEqual(config.interpolate(("b", "b"), "c"), [8, 9]) + + self.assertEqual(config.interpolate(("a",) , "g") , None) + self.assertEqual(config.interpolate(("a", "a"), "g") , None) + self.assertEqual(config.interpolate(("e", "f"), "g") , None) + self.assertEqual(config.interpolate(("e", "f"), "g", 4), 4) + + self.assertEqual(config.interpolate(("b",), "d", 1) , 1) + self.assertEqual(config.interpolate(("d",), "d", 1) , 1) + config.set(() , "d", 2) + self.assertEqual(config.interpolate(("b",), "d", 1) , 2) + self.assertEqual(config.interpolate(("d",), "d", 1) , 2) + config.set(("b",), "d", 3) + self.assertEqual(config.interpolate(("b",), "d", 1) , 2) + self.assertEqual(config.interpolate(("d",), "d", 1) , 2) def test_set(self): - config.set(["b", "c"], [1, 2, 3]) - config.set(["e", "f", "g"], value=234) - self.assertEqual(config.get(["b", "c"]), [1, 2, 3]) - self.assertEqual(config.get(["e", "f", "g"]), 234) + config.set(() , "c", [1, 2, 3]) + config.set(("b",) , "c", [1, 2, 3]) + config.set(("e", "f"), "g", value=234) + self.assertEqual(config.get(() , "c"), [1, 2, 3]) + self.assertEqual(config.get(("b",) , "c"), [1, 2, 3]) + self.assertEqual(config.get(("e", "f"), "g"), 234) def test_setdefault(self): - config.setdefault(["b", "c"], [1, 2, 3]) - config.setdefault(["e", "f", "g"], value=234) - self.assertEqual(config.get(["b", "c"]), "text") - self.assertEqual(config.get(["e", "f", "g"]), 234) + config.setdefault(() , "c", [1, 2, 3]) + config.setdefault(("b",) , "c", [1, 2, 3]) + config.setdefault(("e", "f"), "g", value=234) + self.assertEqual(config.get(() , "c"), [1, 2, 3]) + self.assertEqual(config.get(("b",) , "c"), "text") + self.assertEqual(config.get(("e", "f"), "g"), 234) def test_unset(self): - config.unset(["a"]) - config.unset(["b", "c"]) - config.unset(["c", "d"]) - self.assertEqual(config.get(["a"]), None) - self.assertEqual(config.get(["b", "a"]), 2) - self.assertEqual(config.get(["b", "c"]), None) + config.unset(() , "a") + config.unset(("b",), "c") + config.unset(("a",), "d") + config.unset(("b",), "d") + config.unset(("c",), "d") + self.assertEqual(config.get(() , "a"), None) + self.assertEqual(config.get(("b",), "a"), 2) + self.assertEqual(config.get(("b",), "c"), None) + self.assertEqual(config.get(("a",), "d"), None) + self.assertEqual(config.get(("b",), "d"), None) + self.assertEqual(config.get(("c",), "d"), None) def test_apply(self): options = ( - (["b", "c"], [1, 2, 3]), - (["e", "f", "g"], 234), + (("b",) , "c", [1, 2, 3]), + (("e", "f"), "g", 234), ) - self.assertEqual(config.get(["b", "c"]), "text") - self.assertEqual(config.get(["e", "f", "g"]), None) + self.assertEqual(config.get(("b",) , "c"), "text") + self.assertEqual(config.get(("e", "f"), "g"), None) with config.apply(options): - self.assertEqual(config.get(["b", "c"]), [1, 2, 3]) - self.assertEqual(config.get(["e", "f", "g"]), 234) - - self.assertEqual(config.get(["b", "c"]), "text") - self.assertEqual(config.get(["e", "f", "g"]), None) + self.assertEqual(config.get(("b",) , "c"), [1, 2, 3]) + self.assertEqual(config.get(("e", "f"), "g"), 234) + + self.assertEqual(config.get(("b",) , "c"), "text") + self.assertEqual(config.get(("e", "f"), "g"), None) + + def test_load(self): + with tempfile.TemporaryDirectory() as base: + path1 = os.path.join(base, "cfg1") + with open(path1, "w") as file: + file.write('{"a": 1, "b": {"a": 2, "c": "text"}}') + + path2 = os.path.join(base, "cfg2") + with open(path2, "w") as file: + file.write('{"a": 7, "b": {"a": 8, "e": "foo"}}') + + config.clear() + config.load((path1,)) + self.assertEqual(config.get(() , "a"), 1) + self.assertEqual(config.get(("b",), "a"), 2) + self.assertEqual(config.get(("b",), "c"), "text") + + config.load((path2,)) + self.assertEqual(config.get(() , "a"), 7) + self.assertEqual(config.get(("b",), "a"), 8) + self.assertEqual(config.get(("b",), "c"), "text") + self.assertEqual(config.get(("b",), "e"), "foo") + + config.clear() + config.load((path1, path2)) + self.assertEqual(config.get(() , "a"), 7) + self.assertEqual(config.get(("b",), "a"), 8) + self.assertEqual(config.get(("b",), "c"), "text") + self.assertEqual(config.get(("b",), "e"), "foo") if __name__ == '__main__': |
