@@ -769,21 +769,55 @@ def test_adjust_timeout():
769769
770770def 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