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