55import sys
66from scrapy import Spider , Request , Item
77from scrapy .http import Response
8+ from scrapy .utils .test import get_crawler
89from typing import Optional
910
1011from sh_scrapy .middlewares import (
@@ -26,7 +27,8 @@ def hs_spider_middleware(monkeypatch_globals):
2627
2728@pytest .fixture ()
2829def hs_downloader_middleware (monkeypatch_globals ):
29- return HubstorageDownloaderMiddleware ()
30+ crawler = get_crawler ()
31+ return HubstorageDownloaderMiddleware .from_crawler (crawler )
3032
3133
3234def test_hs_middlewares (hs_downloader_middleware , hs_spider_middleware ):
@@ -46,13 +48,13 @@ def test_hs_middlewares(hs_downloader_middleware, hs_spider_middleware):
4648 assert len (hs_spider_middleware ._seen_requests ) == 0
4749 assert len (hs_downloader_middleware ._seen_requests ) == 0
4850
51+ response_0 .request = request_0
4952 hs_downloader_middleware .process_response (request_0 , response_0 , spider )
5053
5154 assert request_0 .meta [HS_REQUEST_ID_KEY ] == 0
5255 assert request_0 .meta [HS_PARENT_ID_KEY ] is None
5356 assert hs_spider_middleware ._seen_requests [request_0 ] == 0
5457
55- response_0 .request = request_0
5658 request_1 = Request (url )
5759 request_2 = Request (url )
5860 item1 = {}
@@ -69,12 +71,14 @@ def test_hs_middlewares(hs_downloader_middleware, hs_spider_middleware):
6971
7072 response_1 = Response (url )
7173 hs_downloader_middleware .process_request (request_1 , spider )
74+ response_1 .request = request_1
7275 hs_downloader_middleware .process_response (request_1 , response_1 , spider )
7376 assert request_1 .meta [HS_REQUEST_ID_KEY ] == 1
7477 assert request_1 .meta [HS_PARENT_ID_KEY ] == 0
7578
7679 response_2 = Response (url )
7780 hs_downloader_middleware .process_request (request_2 , spider )
81+ response_2 .request = request_2
7882 hs_downloader_middleware .process_response (request_2 , response_2 , spider )
7983 assert request_2 .meta [HS_REQUEST_ID_KEY ] == 2
8084 assert request_2 .meta [HS_PARENT_ID_KEY ] == 0
@@ -101,12 +105,14 @@ def __init__(self, url: str, request: Optional[Request] = None):
101105 response_1 = DummyResponse (url , request )
102106 response_2 = Response (url )
103107 hs_downloader_middleware .process_request (request , spider )
108+ response_1 .request = request
104109 hs_downloader_middleware .process_response (request , response_1 , spider )
105110
106111 with open (hs_downloader_middleware .pipe_writer .path , 'r' ) as tmp_file :
107112 assert tmp_file .readline () == ""
108113 assert request .meta == {}
109114
115+ response_2 .request = request
110116 hs_downloader_middleware .process_response (request , response_2 , spider )
111117 with open (hs_downloader_middleware .pipe_writer .path , 'r' ) as tmp_file :
112118 assert tmp_file .readline ().startswith ('REQ' )
@@ -138,6 +144,7 @@ def __init__(self, url: str, request: Optional[Request] = None):
138144 assert len (hs_spider_middleware ._seen_requests ) == 0
139145 assert len (hs_downloader_middleware ._seen_requests ) == 0
140146
147+ response_0 .request = request_0
141148 hs_downloader_middleware .process_response (request_0 , response_0 , spider )
142149
143150 assert request_0 .meta [HS_REQUEST_ID_KEY ] == 0
@@ -154,6 +161,7 @@ def __init__(self, url: str, request: Optional[Request] = None):
154161 assert HS_REQUEST_ID_KEY not in request_1 .meta
155162 assert request_1 .meta [HS_PARENT_ID_KEY ] == 0
156163
164+ response_1 .request = request_1
157165 hs_downloader_middleware .process_response (request_1 , response_1 , spider )
158166
159167 assert request_1 .meta [HS_REQUEST_ID_KEY ] == 1
@@ -163,11 +171,13 @@ def __init__(self, url: str, request: Optional[Request] = None):
163171 response_2_1 = DummyResponse (url , request_2 )
164172 response_2_2 = Response (url )
165173
174+ response_2_1 .request = request_2
166175 hs_downloader_middleware .process_response (request_2 , response_2_1 , spider )
167176
168177 assert request_2 .meta [HS_REQUEST_ID_KEY ] == 1
169178 assert request_2 .meta [HS_PARENT_ID_KEY ] == 0
170179
180+ response_2_2 .request = request_2
171181 hs_downloader_middleware .process_response (request_2 , response_2_2 , spider )
172182
173183 assert request_2 .meta [HS_REQUEST_ID_KEY ] == 2
0 commit comments