update interface of config functions
This commit is contained in:
@@ -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,93 @@ 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,
|
||||
"c": "text",
|
||||
})
|
||||
|
||||
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",) , "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)
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
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),
|
||||
(("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"), [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"), "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.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__':
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2017 Mike Fährmann
|
||||
# Copyright 2017-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
|
||||
@@ -18,8 +18,6 @@ from os.path import join
|
||||
import gallery_dl.config as config
|
||||
import gallery_dl.extractor as extractor
|
||||
|
||||
CKEY = ("cookies",)
|
||||
|
||||
|
||||
class TestCookiejar(unittest.TestCase):
|
||||
|
||||
@@ -45,7 +43,7 @@ class TestCookiejar(unittest.TestCase):
|
||||
config.clear()
|
||||
|
||||
def test_cookiefile(self):
|
||||
config.set(CKEY, self.cookiefile)
|
||||
config.set((), "cookies", self.cookiefile)
|
||||
|
||||
cookies = extractor.find("test:").session.cookies
|
||||
self.assertEqual(len(cookies), 1)
|
||||
@@ -63,7 +61,7 @@ class TestCookiejar(unittest.TestCase):
|
||||
self._test_warning(join(self.path.name, "nothing"), FileNotFoundError)
|
||||
|
||||
def _test_warning(self, filename, exc):
|
||||
config.set(CKEY, filename)
|
||||
config.set((), "cookies", filename)
|
||||
log = logging.getLogger("test")
|
||||
with mock.patch.object(log, "warning") as mock_warning:
|
||||
cookies = extractor.find("test:").session.cookies
|
||||
@@ -77,7 +75,7 @@ class TestCookiedict(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.cdict = {"NAME1": "VALUE1", "NAME2": "VALUE2"}
|
||||
config.set(CKEY, self.cdict)
|
||||
config.set((), "cookies", self.cdict)
|
||||
|
||||
def tearDown(self):
|
||||
config.clear()
|
||||
@@ -112,7 +110,7 @@ class TestCookieLogin(unittest.TestCase):
|
||||
}
|
||||
for category, cookienames in extr_cookies.items():
|
||||
cookies = {name: "value" for name in cookienames}
|
||||
config.set(CKEY, cookies)
|
||||
config.set((), "cookies", cookies)
|
||||
extr = _get_extractor(category)
|
||||
with mock.patch.object(extr, "_login_impl") as mock_login:
|
||||
extr.login()
|
||||
|
||||
@@ -100,7 +100,7 @@ class TestDownloaderBase(unittest.TestCase):
|
||||
cls.extractor = extractor.find("test:")
|
||||
cls.dir = tempfile.TemporaryDirectory()
|
||||
cls.fnum = 0
|
||||
config.set(("base-directory",), cls.dir.name)
|
||||
config.set((), "base-directory", cls.dir.name)
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
|
||||
@@ -58,7 +58,7 @@ class BasePostprocessorTest(unittest.TestCase):
|
||||
def setUpClass(cls):
|
||||
cls.extractor = extractor.find("test:")
|
||||
cls.dir = tempfile.TemporaryDirectory()
|
||||
config.set(("base-directory",), cls.dir.name)
|
||||
config.set((), "base-directory", cls.dir.name)
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
|
||||
@@ -55,10 +55,11 @@ class TestExtractorResults(unittest.TestCase):
|
||||
if result:
|
||||
if "options" in result:
|
||||
for key, value in result["options"]:
|
||||
config.set(key.split("."), value)
|
||||
key = key.split(".")
|
||||
config.set(key[:-1], key[-1], value)
|
||||
if "range" in result:
|
||||
config.set(("image-range",), result["range"])
|
||||
config.set(("chapter-range",), result["range"])
|
||||
config.set((), "image-range" , result["range"])
|
||||
config.set((), "chapter-range", result["range"])
|
||||
content = "content" in result
|
||||
else:
|
||||
content = False
|
||||
@@ -285,35 +286,36 @@ def setup_test_config():
|
||||
email = "gallerydl@openaliasbox.org"
|
||||
|
||||
config.clear()
|
||||
config.set(("cache", "file"), ":memory:")
|
||||
config.set(("downloader", "part"), False)
|
||||
config.set(("downloader", "adjust-extensions"), False)
|
||||
config.set(("extractor", "timeout"), 60)
|
||||
config.set(("extractor", "username"), name)
|
||||
config.set(("extractor", "password"), name)
|
||||
config.set(("extractor", "nijie" , "username"), email)
|
||||
config.set(("extractor", "seiga" , "username"), email)
|
||||
config.set(("cache",), "file", None)
|
||||
config.set(("downloader",), "part", False)
|
||||
config.set(("downloader",), "adjust-extensions", False)
|
||||
config.set(("extractor" ,), "timeout" , 60)
|
||||
config.set(("extractor" ,), "username", name)
|
||||
config.set(("extractor" ,), "password", name)
|
||||
|
||||
config.set(("extractor", "danbooru" , "username"), None)
|
||||
config.set(("extractor", "instagram" , "username"), None)
|
||||
config.set(("extractor", "imgur" , "username"), None)
|
||||
config.set(("extractor", "newgrounds", "username"), None)
|
||||
config.set(("extractor", "twitter" , "username"), None)
|
||||
config.set(("extractor", "nijie") , "username", email)
|
||||
config.set(("extractor", "seiga") , "username", email)
|
||||
config.set(("extractor", "danbooru") , "username", None)
|
||||
config.set(("extractor", "instagram") , "username", None)
|
||||
config.set(("extractor", "twitter") , "username", None)
|
||||
|
||||
config.set(("extractor", "mangoxo" , "username"), "LiQiang3")
|
||||
config.set(("extractor", "mangoxo" , "password"), "5zbQF10_5u25259Ma")
|
||||
config.set(("extractor", "newgrounds"), "username", "d1618111")
|
||||
config.set(("extractor", "newgrounds"), "password", "d1618111")
|
||||
|
||||
config.set(("extractor", "deviantart", "client-id"), "7777")
|
||||
config.set(("extractor", "deviantart", "client-secret"),
|
||||
config.set(("extractor", "mangoxo") , "username", "LiQiang3")
|
||||
config.set(("extractor", "mangoxo") , "password", "5zbQF10_5u25259Ma")
|
||||
|
||||
config.set(("extractor", "deviantart"), "client-id", "7777")
|
||||
config.set(("extractor", "deviantart"), "client-secret",
|
||||
"ff14994c744d9208e5caeec7aab4a026")
|
||||
|
||||
config.set(("extractor", "tumblr", "api-key"),
|
||||
config.set(("extractor", "tumblr"), "api-key",
|
||||
"0cXoHfIqVzMQcc3HESZSNsVlulGxEXGDTTZCDrRrjaa0jmuTc6")
|
||||
config.set(("extractor", "tumblr", "api-secret"),
|
||||
config.set(("extractor", "tumblr"), "api-secret",
|
||||
"6wxAK2HwrXdedn7VIoZWxGqVhZ8JdYKDLjiQjL46MLqGuEtyVj")
|
||||
config.set(("extractor", "tumblr", "access-token"),
|
||||
config.set(("extractor", "tumblr"), "access-token",
|
||||
"N613fPV6tOZQnyn0ERTuoEZn0mEqG8m2K8M3ClSJdEHZJuqFdG")
|
||||
config.set(("extractor", "tumblr", "access-token-secret"),
|
||||
config.set(("extractor", "tumblr"), "access-token-secret",
|
||||
"sgOA7ZTT4FBXdOGGVV331sSp0jHYp4yMDRslbhaQf7CaS71i4O")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user