fix cmdline arguments not overriding extractor-downloader options
This commit is contained in:
@@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
from .. import config, util
|
from .. import config, util
|
||||||
|
_config = config._config
|
||||||
|
|
||||||
|
|
||||||
class DownloaderBase():
|
class DownloaderBase():
|
||||||
@@ -44,7 +45,9 @@ class DownloaderBase():
|
|||||||
"""Interpolate downloader config value for 'key'"""
|
"""Interpolate downloader config value for 'key'"""
|
||||||
return config.interpolate(("downloader", self.scheme), key, default)
|
return config.interpolate(("downloader", self.scheme), key, default)
|
||||||
|
|
||||||
def config_opts(self, key, default=None):
|
def config_opts(self, key, default=None, conf=_config):
|
||||||
|
if key in conf:
|
||||||
|
return conf[key]
|
||||||
value = self.opts.get(key, util.SENTINEL)
|
value = self.opts.get(key, util.SENTINEL)
|
||||||
if value is not util.SENTINEL:
|
if value is not util.SENTINEL:
|
||||||
return value
|
return value
|
||||||
|
|||||||
@@ -150,20 +150,21 @@ class TestDownloaderConfig(unittest.TestCase):
|
|||||||
config.set(("downloader", "http"), "filesize-min", "10k")
|
config.set(("downloader", "http"), "filesize-min", "10k")
|
||||||
config.set(("extractor", "generic"), "verify", False)
|
config.set(("extractor", "generic"), "verify", False)
|
||||||
config.set(("extractor", "generic", "example.org"), "timeout", 10)
|
config.set(("extractor", "generic", "example.org"), "timeout", 10)
|
||||||
config.set(("extractor", "generic", "http"), "rate", "1k")
|
config.set(("extractor", "generic", "http"), "part", False)
|
||||||
config.set(
|
config.set(
|
||||||
("extractor", "generic", "example.org", "http"), "headers", {})
|
("extractor", "generic", "example.org", "http"), "headers", {})
|
||||||
|
|
||||||
job = FakeJob()
|
job = FakeJob()
|
||||||
dl = downloader.find("http")(job)
|
dl = downloader.find("http")(job)
|
||||||
|
|
||||||
self.assertEqual(dl.headers, {})
|
self.assertEqual(dl.headers, {"foo": "bar"})
|
||||||
self.assertEqual(dl.minsize, 10240)
|
self.assertEqual(dl.minsize, 10240)
|
||||||
self.assertEqual(dl.retries, float("inf"))
|
self.assertEqual(dl.retries, float("inf"))
|
||||||
self.assertEqual(dl.timeout, 10)
|
self.assertEqual(dl.timeout, 10)
|
||||||
self.assertEqual(dl.verify, False)
|
self.assertEqual(dl.verify, False)
|
||||||
self.assertEqual(dl.mtime, False)
|
self.assertEqual(dl.mtime, False)
|
||||||
self.assertEqual(dl.rate, 1024)
|
self.assertEqual(dl.rate, 42)
|
||||||
|
self.assertEqual(dl.part, False)
|
||||||
|
|
||||||
|
|
||||||
class TestDownloaderBase(unittest.TestCase):
|
class TestDownloaderBase(unittest.TestCase):
|
||||||
|
|||||||
Reference in New Issue
Block a user