fix cmdline arguments not overriding extractor-downloader options

This commit is contained in:
Mike Fährmann
2025-02-22 17:40:27 +01:00
parent 18ed39c1cf
commit 613f05afa3
2 changed files with 8 additions and 4 deletions

View File

@@ -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

View File

@@ -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):