From 388c5c4b78509adaf801fb8f66d2d1fdbe1ce9d4 Mon Sep 17 00:00:00 2001 From: Jakob de Maeyer Date: Mon, 9 Nov 2015 00:36:16 +0100 Subject: [PATCH] Fix component exporting for Addon base class --- scrapy/addons/__init__.py | 2 +- tests/test_addons/__init__.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/scrapy/addons/__init__.py b/scrapy/addons/__init__.py index ddd18c7fb..48de99c1a 100644 --- a/scrapy/addons/__init__.py +++ b/scrapy/addons/__init__.py @@ -84,7 +84,7 @@ class Addon(object): # e.g. for DOWNLOADER_MIDDLEWARES: {'myclass': 100} k = comp v = config.get('order', self.component_order) - settings.set(self.component_type, {k: v}, 'addon') + settings[self.component_type].update({k: v}, 'addon') def export_basics(self, settings): """Export the :attr:`basic_settings` attribute into the settings object. diff --git a/tests/test_addons/__init__.py b/tests/test_addons/__init__.py index 4f1074221..b135dd04d 100644 --- a/tests/test_addons/__init__.py +++ b/tests/test_addons/__init__.py @@ -38,7 +38,9 @@ class AddonTest(unittest.TestCase): verifyObject(IAddon, self.testaddon) def test_export_component(self): - settings = BaseSettings({'ITEM_PIPELINES': {}}, 'default') + settings = BaseSettings({'ITEM_PIPELINES': BaseSettings(), + 'DOWNLOAD_HANDLERS': BaseSettings()}, + 'default') self.testaddon.component_type = None self.testaddon.export_component({}, settings) self.assertEqual(len(settings['ITEM_PIPELINES']), 0)