change config specifiers in input file format
Instead of a dictionary/object, input file options are now specified
by a 'key=value' pair starting with '-' for options only applying to
the next URL or '-G' for Global options applying to all following URLs.
See the docstring of parse_inputfile() for details.
Example option specifiers:
- filename = "{id}.{extension}"
- extractor.pixiv.user.directory = ["Pixiv Users", "{user[id]}"]
-spaces="are_optional"
-G keywords = {"global": "option"}
This commit is contained in:
@@ -31,6 +31,15 @@ class TestConfig(unittest.TestCase):
|
||||
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)
|
||||
@@ -43,14 +52,29 @@ class TestConfig(unittest.TestCase):
|
||||
self.assertEqual(config.get(["b", "c"]), "text")
|
||||
self.assertEqual(config.get(["e", "f", "g"]), 234)
|
||||
|
||||
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_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__':
|
||||
|
||||
Reference in New Issue
Block a user