diff --git a/scrapy/tests/test_proxy_connect.py b/scrapy/tests/test_proxy_connect.py index e0b47a3dc..f5f6006dc 100644 --- a/scrapy/tests/test_proxy_connect.py +++ b/scrapy/tests/test_proxy_connect.py @@ -1,5 +1,5 @@ +import json import os -import subprocess import time from threading import Thread @@ -8,14 +8,12 @@ from netlib import http_auth from twisted.internet import defer from twisted.trial.unittest import TestCase +from scrapy.http import Request from scrapy.utils.test import get_testlog, docrawl -from scrapy.tests.spiders import SimpleSpider +from scrapy.tests.spiders import SimpleSpider, SingleRequestSpider from scrapy.tests.mockserver import MockServer - - - class HTTPSProxy(controller.Master, Thread): def __init__(self, port): @@ -79,6 +77,15 @@ class ProxyConnectTestCase(TestCase): self._assert_got_tunnel_error() os.environ['https_proxy'] = 'http://scrapy:scrapy@localhost:8888' + @defer.inlineCallbacks + def test_https_tunnel_without_leak_proxy_authorization_header(self): + request = Request("https://localhost:8999/echo") + spider = SingleRequestSpider(seed=request) + yield docrawl(spider) + self._assert_got_response_code(200) + echo = json.loads(spider.meta['responses'][0].body) + self.assertTrue('Proxy-Authorization' not in echo['headers']) + @defer.inlineCallbacks def test_https_noconnect_auth_error(self): os.environ['https_proxy'] = 'http://wrong:wronger@localhost:8888?noconnect'