@@ -439,6 +439,61 @@ def parse_(self, response: DummyResponse, page: SomePage):
439439 assert type (item ["page" ].response .response ) is HttpResponse
440440
441441
442+ @ensureDeferred
443+ async def test_provider_any_response_http_response_param (mockserver ):
444+ @attrs .define
445+ class SomePage (BasePage ):
446+ response : AnyResponse
447+
448+ class ZyteAPISpider (Spider ):
449+ def start_requests (self ):
450+ yield Request (self .url , callback = self .parse_ )
451+
452+ def parse_ (self , response : DummyResponse , page : SomePage ):
453+ yield {"page" : page }
454+
455+ settings = provider_settings (mockserver )
456+ settings ["ZYTE_API_PROVIDER_PARAMS" ] = {"httpResponseBody" : True }
457+ item , url , crawler = await crawl_single_item (ZyteAPISpider , HtmlResource , settings )
458+ params = crawler .engine .downloader .handlers ._handlers ["http" ].params
459+
460+ assert len (params ) == 1
461+ assert params [0 ] == {
462+ "url" : url ,
463+ "httpResponseBody" : True ,
464+ "httpResponseHeaders" : True ,
465+ }
466+ assert type (item ["page" ].response ) is AnyResponse
467+ assert type (item ["page" ].response .response ) is HttpResponse
468+
469+
470+ @ensureDeferred
471+ async def test_provider_any_response_browser_html_param (mockserver ):
472+ @attrs .define
473+ class SomePage (BasePage ):
474+ response : AnyResponse
475+
476+ class ZyteAPISpider (Spider ):
477+ def start_requests (self ):
478+ yield Request (self .url , callback = self .parse_ )
479+
480+ def parse_ (self , response : DummyResponse , page : SomePage ):
481+ yield {"page" : page }
482+
483+ settings = provider_settings (mockserver )
484+ settings ["ZYTE_API_PROVIDER_PARAMS" ] = {"browserHtml" : True }
485+ item , url , crawler = await crawl_single_item (ZyteAPISpider , HtmlResource , settings )
486+ params = crawler .engine .downloader .handlers ._handlers ["http" ].params
487+
488+ assert len (params ) == 1
489+ assert params [0 ] == {
490+ "url" : url ,
491+ "browserHtml" : True ,
492+ }
493+ assert type (item ["page" ].response ) is AnyResponse
494+ assert type (item ["page" ].response .response ) is BrowserResponse
495+
496+
442497@ensureDeferred
443498async def test_provider_any_response_product (mockserver ):
444499 @attrs .define
0 commit comments