Use getlist to obtain STICKY_META_KEYS setting

This commit is contained in:
Luiz Silva 2019-12-06 14:49:31 -03:00
parent f89b3dff93
commit f8de153725
2 changed files with 7 additions and 1 deletions

View File

@ -7,7 +7,7 @@ class StickyMetaParamsMiddleware(object):
@classmethod
def from_crawler(cls, crawler):
keys_to_sticky = crawler.settings.get('STICKY_META_KEYS', [])
keys_to_sticky = crawler.settings.getlist('STICKY_META_KEYS')
if not keys_to_sticky:
raise NotConfigured
return cls(keys_to_sticky)

View File

@ -45,3 +45,9 @@ class TestStickyMetaParamsMiddleware(TestCase):
for result in results:
if isinstance(result, Request):
self.assertEqual(result.meta, {'param2': 'Stickied!'})
def test_comma_separated_string_setting(self):
crawler = get_crawler(Spider, {'STICKY_META_KEYS': 'param1,param2'})
middleware = self.create_middleware(crawler)
assert type(middleware.keys_to_sticky) is list
assert middleware.keys_to_sticky == ['param1', 'param2']