Test that a user configured param is not overriden by a stickied value

This commit is contained in:
Luiz Silva 2019-12-06 18:58:43 -03:00
parent f8de153725
commit 195f43b054
1 changed files with 28 additions and 0 deletions

View File

@ -51,3 +51,31 @@ class TestStickyMetaParamsMiddleware(TestCase):
middleware = self.create_middleware(crawler)
assert type(middleware.keys_to_sticky) is list
assert middleware.keys_to_sticky == ['param1', 'param2']
def test_sticky_param_does_not_override_manually_configured_param(self):
crawler = get_crawler(
Spider,
{'STICKY_META_KEYS': ['param', 'param2']}
)
middleware = self.create_middleware(crawler)
request = Request(
self.test_url,
meta={
'param': 'Stickied!',
'param2': 'Stickied!'
})
response = Response(self.test_url, request=request)
result = [
Request(self.test_url, meta={'param': 'Override stickied'}),
MockItem(name='dummy')
]
results = middleware.process_spider_output(response, result, None)
for result in results:
if isinstance(result, Request):
self.assertEqual(
result.meta,
{
'param': 'Override stickied',
'param2': 'Stickied!'
}
)