diff --git a/scrapy/spidermanager.py b/scrapy/spidermanager.py index 5715b7793..93e91bcb4 100644 --- a/scrapy/spidermanager.py +++ b/scrapy/spidermanager.py @@ -15,7 +15,7 @@ from scrapy.utils.spider import iter_spider_classes class SpiderManager(object): def __init__(self, settings): - self.spider_modules = settings['SPIDER_MODULES'] + self.spider_modules = settings.getlist('SPIDER_MODULES') self._spiders = {} for name in self.spider_modules: for module in walk_modules(name): diff --git a/tests/test_spidermanager/__init__.py b/tests/test_spidermanager/__init__.py index 69ab3b82a..94b8a1dc8 100644 --- a/tests/test_spidermanager/__init__.py +++ b/tests/test_spidermanager/__init__.py @@ -63,6 +63,13 @@ class SpiderManagerTest(unittest.TestCase): self.spiderman = SpiderManager.from_settings(settings) assert len(self.spiderman._spiders) == 1 + def test_load_spider_module(self): + prefix = 'tests.test_spidermanager.test_spiders.' + module = ','.join(prefix + s for s in ('spider1', 'spider2')) + settings = Settings({'SPIDER_MODULES': module}) + self.spiderman = SpiderManager.from_settings(settings) + assert len(self.spiderman._spiders) == 2 + def test_load_base_spider(self): module = 'tests.test_spidermanager.test_spiders.spider0' settings = Settings({'SPIDER_MODULES': [module]})