1
- import platform
2
- import pytest
3
1
from scrapy import Spider
4
2
from scrapy .http import Request , Response
5
3
from scrapy .utils .test import get_crawler
10
8
from tests .mockserver import StaticMockServer
11
9
12
10
13
- @pytest .mark .skipif (platform .system () == "Windows" , reason = "Gets stuck on Windows" )
14
11
class MixedRequestsTestCase (TestCase ):
15
12
"""
16
13
This test case ensures the handler's 'download_request' method works as expected, and
@@ -30,24 +27,28 @@ def tearDown(self):
30
27
self .server .__exit__ (None , None , None )
31
28
yield self .handler .close ()
32
29
33
- def test_regular_request (self ):
34
- def _test (response ):
30
+ @defer .inlineCallbacks
31
+ def test_download_request (self ):
32
+ def _test_regular (response , request ):
35
33
self .assertIsInstance (response , Response )
36
34
self .assertEqual (response .css ("a::text" ).getall (), ["Lorem Ipsum" , "Infinite Scroll" ])
37
35
self .assertEqual (response .url , request .url )
38
36
self .assertEqual (response .status , 200 )
39
37
self .assertNotIn ("playwright" , response .flags )
40
38
41
- request = Request (self .server .urljoin ("/index.html" ))
42
- return self .handler .download_request (request , Spider ("foo" )).addCallback (_test )
43
-
44
- def test_playwright_request (self ):
45
- def _test (response ):
39
+ def _test_playwright (response , request ):
46
40
self .assertIsInstance (response , Response )
47
41
self .assertEqual (response .css ("a::text" ).getall (), ["Lorem Ipsum" , "Infinite Scroll" ])
48
42
self .assertEqual (response .url , request .url )
49
43
self .assertEqual (response .status , 200 )
50
44
self .assertIn ("playwright" , response .flags )
51
45
52
- request = Request (self .server .urljoin ("/index.html" ), meta = {"playwright" : True })
53
- return self .handler .download_request (request , Spider ("foo" )).addCallback (_test )
46
+ req1 = Request (self .server .urljoin ("/index.html" ))
47
+ yield self .handler .download_request (req1 , Spider ("foo" )).addCallback (
48
+ _test_regular , request = req1
49
+ )
50
+
51
+ req2 = Request (self .server .urljoin ("/index.html" ), meta = {"playwright" : True })
52
+ yield self .handler .download_request (req2 , Spider ("foo" )).addCallback (
53
+ _test_playwright , request = req2
54
+ )
0 commit comments