|
1 | 1 | # -*- coding: utf-8 -*- |
| 2 | + |
2 | 3 | from __future__ import absolute_import |
3 | 4 | import copy |
4 | 5 | import json |
@@ -769,21 +770,54 @@ def test_adjust_timeout(): |
769 | 770 |
|
770 | 771 | def test_spider_attribute(): |
771 | 772 | req_url = "http://scrapy.org" |
| 773 | + spider = scrapy.Spider("example") |
| 774 | + mw = _get_mw() |
| 775 | + |
772 | 776 | req1 = scrapy.Request(req_url) |
| 777 | + spider.splash = {"args": {"images": 0}} |
| 778 | + |
| 779 | + mw = _get_mw() |
| 780 | + req2 = mw.process_request(req1, spider) |
| 781 | + assert "_splash_processed" in req2.meta |
| 782 | + assert "render.json" in req2.url |
| 783 | + request_data = json.loads(req2.body.decode('utf8')) |
| 784 | + assert "url" in request_data |
| 785 | + assert request_data.get("url") == req_url |
| 786 | + assert "images" in request_data |
| 787 | + assert req2.method == 'POST' |
| 788 | + |
| 789 | + response = Response(req_url, request=req2) |
| 790 | + response2 = mw.process_response(req2, response, spider) |
| 791 | + assert response2 is not response |
773 | 792 |
|
| 793 | + |
| 794 | +def test_spider_attribute_dont_splash(): |
| 795 | + req_url = "http://scrapy.org" |
774 | 796 | spider = scrapy.Spider("example") |
| 797 | + mw = _get_mw() |
| 798 | + |
| 799 | + req1 = scrapy.Request(req_url, meta={'dont_splash': True}) |
775 | 800 | spider.splash = {"args": {"images": 0}} |
776 | 801 |
|
| 802 | + req2 = mw.process_request(req1, spider) |
| 803 | + assert req2 is None |
| 804 | + |
| 805 | + response = Response(req_url, request=req1) |
| 806 | + response2 = mw.process_response(req1, response, spider) |
| 807 | + assert response2 is response |
| 808 | + |
| 809 | + |
| 810 | +def test_spider_attribute_blank(): |
| 811 | + req_url = "http://scrapy.org" |
| 812 | + spider = scrapy.Spider("example") |
777 | 813 | mw = _get_mw() |
778 | | - req1 = mw.process_request(req1, spider) |
779 | | - assert "_splash_processed" in req1.meta |
780 | | - 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) |
784 | | - assert req1.method == 'POST' |
785 | | - |
786 | | - # spider attribute blank middleware disabled |
| 814 | + |
| 815 | + req1 = scrapy.Request(req_url) |
787 | 816 | spider.splash = {} |
| 817 | + |
788 | 818 | req2 = mw.process_request(req1, spider) |
789 | 819 | assert req2 is None |
| 820 | + |
| 821 | + response = Response(req_url, request=req1) |
| 822 | + response2 = mw.process_response(req1, response, spider) |
| 823 | + assert response2 is response |
0 commit comments