mirror of https://github.com/scrapy/scrapy.git
Make Spider.update_settings() an instance method
This commit is contained in:
parent
daec045711
commit
2629997a2f
|
|
@ -75,9 +75,8 @@ class Spider(object_ref):
|
|||
def parse(self, response):
|
||||
raise NotImplementedError
|
||||
|
||||
@classmethod
|
||||
def update_settings(cls, settings):
|
||||
settings.setdict(cls.custom_settings or {}, priority='spider')
|
||||
def update_settings(self, settings):
|
||||
settings.setdict(self.custom_settings or {}, priority='spider')
|
||||
|
||||
@classmethod
|
||||
def handles_request(cls, request):
|
||||
|
|
|
|||
|
|
@ -98,11 +98,17 @@ class SpiderTest(unittest.TestCase):
|
|||
self.spider_class.custom_settings = spider_settings
|
||||
settings = Settings(project_settings, priority='project')
|
||||
|
||||
self.spider_class.update_settings(settings)
|
||||
spider = self.spider_class('example.com')
|
||||
spider.update_settings(settings)
|
||||
self.assertEqual(settings.get('TEST1'), 'spider')
|
||||
self.assertEqual(settings.get('TEST2'), 'spider')
|
||||
self.assertEqual(settings.get('TEST3'), 'project')
|
||||
|
||||
spider_instance_settings = {'TEST1': 'spider_instance'}
|
||||
spider.custom_settings = spider_instance_settings
|
||||
spider.update_settings(settings)
|
||||
self.assertEqual(settings.get('TEST1'), 'spider_instance')
|
||||
|
||||
def test_logger(self):
|
||||
spider = self.spider_class('example.com')
|
||||
with LogCapture() as l:
|
||||
|
|
|
|||
Loading…
Reference in New Issue