mirror of https://github.com/scrapy/scrapy.git
fixed backwards compatibility for SPIDER_MANAGER_CLASS option
This commit is contained in:
parent
0a5bbbaed3
commit
c3d3a94914
|
|
@ -192,8 +192,8 @@ def _get_spider_loader(settings):
|
|||
'Please use SPIDER_LOADER_CLASS.',
|
||||
category=ScrapyDeprecationWarning, stacklevel=2
|
||||
)
|
||||
cls_path = settings.get('SPIDER_LOADER_CLASS',
|
||||
settings.get('SPIDER_MANAGER_CLASS'))
|
||||
cls_path = settings.get('SPIDER_MANAGER_CLASS',
|
||||
settings.get('SPIDER_LOADER_CLASS'))
|
||||
loader_cls = load_object(cls_path)
|
||||
verifyClass(ISpiderLoader, loader_cls)
|
||||
return loader_cls.from_settings(settings.frozencopy())
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ from zope.interface.verify import DoesNotImplement
|
|||
|
||||
from scrapy.crawler import Crawler, CrawlerRunner
|
||||
from scrapy.settings import Settings, default_settings
|
||||
from scrapy.spiderloader import SpiderLoader
|
||||
from scrapy.utils.spider import DefaultSpider
|
||||
from scrapy.utils.misc import load_object
|
||||
|
||||
|
|
@ -60,6 +61,10 @@ class SpiderLoaderWithWrongInterface(object):
|
|||
pass
|
||||
|
||||
|
||||
class CustomSpiderLoader(SpiderLoader):
|
||||
pass
|
||||
|
||||
|
||||
class CrawlerRunnerTestCase(unittest.TestCase):
|
||||
|
||||
def test_spider_manager_verify_interface(self):
|
||||
|
|
@ -87,3 +92,13 @@ class CrawlerRunnerTestCase(unittest.TestCase):
|
|||
self.assertIn("CrawlerRunner.spider_loader", str(w[0].message))
|
||||
sl_cls = load_object(runner.settings['SPIDER_LOADER_CLASS'])
|
||||
self.assertIsInstance(spiders, sl_cls)
|
||||
|
||||
def test_spidermanager_deprecation(self):
|
||||
with warnings.catch_warnings(record=True) as w:
|
||||
runner = CrawlerRunner({
|
||||
'SPIDER_MANAGER_CLASS': 'tests.test_crawler.CustomSpiderLoader'
|
||||
})
|
||||
self.assertIsInstance(runner.spider_loader, CustomSpiderLoader)
|
||||
self.assertEqual(len(w), 1)
|
||||
self.assertIn('Please use SPIDER_LOADER_CLASS', str(w[0].message))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue