diff --git a/scrapy/spidermiddlewares/stickymeta.py b/scrapy/spidermiddlewares/stickymeta.py index 7b5524d46..b4493f9ba 100644 --- a/scrapy/spidermiddlewares/stickymeta.py +++ b/scrapy/spidermiddlewares/stickymeta.py @@ -16,7 +16,11 @@ class StickyMetaParamsMiddleware(object): self.keys_to_sticky = keys_to_sticky def process_spider_output(self, response, result, spider): - sticky_meta = {k: response.meta[k] for k in self.keys_to_sticky if k in response.meta} + sticky_meta = { + k: response.meta[k] + for k in self.keys_to_sticky + if k in response.meta + } for r in result: if not isinstance(r, Request): yield r diff --git a/tests/test_spidermiddleware_stickymeta.py b/tests/test_spidermiddleware_stickymeta.py index b5baec1dd..64ee3796b 100644 --- a/tests/test_spidermiddleware_stickymeta.py +++ b/tests/test_spidermiddleware_stickymeta.py @@ -47,8 +47,9 @@ class TestStickyMetaParamsMiddleware(TestCase): response = Response(self.test_url, request=request) result = [ Request(self.test_url), - MockItem(name='dummy') # Add a item just to increase the test coverage + MockItem(name='dummy') ] - for result in middleware.process_spider_output(response, result, spider): + results = middleware.process_spider_output(response, result, spider) + for result in results: if isinstance(result, Request): self.assertEqual(result.meta, {'param2': 'Stickied!'})