Skip to content

Commit 47f162d

Browse files
committed
Improve test coverage for the splash spider attribute
1 parent 03aaab9 commit 47f162d

File tree

1 file changed

+39
-5
lines changed

1 file changed

+39
-5
lines changed

tests/test_middleware.py

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -769,21 +769,55 @@ def test_adjust_timeout():
769769

770770
def test_spider_attribute():
771771
req_url = "http://scrapy.org"
772-
req1 = scrapy.Request(req_url)
773-
774772
spider = scrapy.Spider("example")
773+
mw = _get_mw()
774+
775+
req1 = scrapy.Request(req_url)
775776
spider.splash = {"args": {"images": 0}}
776777

777778
mw = _get_mw()
778779
req1 = mw.process_request(req1, spider)
779780
assert "_splash_processed" in req1.meta
780781
assert "render.json" in req1.url
781-
assert "url" in json.loads(req1.body)
782-
assert json.loads(req1.body).get("url") == req_url
783-
assert "images" in json.loads(req1.body)
782+
request_data = json.loads(req1.body.decode('utf8'))
783+
assert "url" in request_data
784+
assert request_data.get("url") == req_url
785+
assert "images" in request_data
784786
assert req1.method == 'POST'
785787

786788
# spider attribute blank middleware disabled
787789
spider.splash = {}
790+
req3 = mw.process_request(req1, spider)
791+
assert req3 is None
792+
793+
794+
def test_spider_attribute_dont_splash():
795+
req_url = "http://scrapy.org"
796+
spider = scrapy.Spider("example")
797+
mw = _get_mw()
798+
799+
req1 = scrapy.Request(req_url, meta={'dont_splash': True})
800+
spider.splash = {"args": {"images": 0}}
801+
802+
req2 = mw.process_request(req1, spider)
803+
assert req2 is None
804+
805+
response = Response("http://example.com", request=req1)
806+
response2 = mw.process_response(req1, response, None)
807+
assert response2 is response
808+
809+
810+
def test_spider_attribute_blank():
811+
req_url = "http://scrapy.org"
812+
spider = scrapy.Spider("example")
813+
mw = _get_mw()
814+
815+
req1 = scrapy.Request(req_url)
816+
spider.splash = {}
817+
788818
req2 = mw.process_request(req1, spider)
789819
assert req2 is None
820+
821+
response = Response("http://example.com", request=req1)
822+
response2 = mw.process_response(req1, response, None)
823+
assert response2 is response

0 commit comments

Comments
 (0)