aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_config.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2019-07-02 04:33:45 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2019-07-02 04:33:45 -0400
commit195c45911e79c33cf0bb986721365fb06df5a153 (patch)
treeac0c9b6ef40bea7aa7ab0c5c3cb500eb510668fa /test/test_config.py
Import Upstream version 1.8.7upstream/1.8.7
Diffstat (limited to 'test/test_config.py')
-rw-r--r--test/test_config.py81
1 files changed, 81 insertions, 0 deletions
diff --git a/test/test_config.py b/test/test_config.py
new file mode 100644
index 0000000..8cdb3da
--- /dev/null
+++ b/test/test_config.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+# Copyright 2015-2017 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
+# published by the Free Software Foundation.
+
+import unittest
+import gallery_dl.config as config
+import os
+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,))
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ 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)
+
+ def test_apply(self):
+ options = (
+ (["b", "c"], [1, 2, 3]),
+ (["e", "f", "g"], 234),
+ )
+
+ 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)
+
+
+if __name__ == '__main__':
+ unittest.main()