mirror of
https://github.com/scrapy/scrapy.git
synced 2025-02-24 02:04:22 +00:00
add https test for http10 handler (no luck with testing https with http11 so far)
This commit is contained in:
parent
96fcf4cea4
commit
a4ca1668d8
@ -199,14 +199,18 @@ class MockServer():
|
||||
time.sleep(0.2)
|
||||
|
||||
|
||||
def ssl_context_factory():
|
||||
return ssl.DefaultOpenSSLContextFactory(
|
||||
os.path.join(os.path.dirname(__file__), 'keys/cert.pem'),
|
||||
os.path.join(os.path.dirname(__file__), 'keys/cert.pem'),
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
root = Root()
|
||||
factory = Site(root)
|
||||
httpPort = reactor.listenTCP(8998, factory)
|
||||
contextFactory = ssl.DefaultOpenSSLContextFactory(
|
||||
os.path.join(os.path.dirname(__file__), 'keys/cert.pem'),
|
||||
os.path.join(os.path.dirname(__file__), 'keys/cert.pem'),
|
||||
)
|
||||
contextFactory = ssl_context_factory()
|
||||
httpsPort = reactor.listenSSL(8999, factory, contextFactory)
|
||||
|
||||
def print_listening():
|
||||
|
@ -27,7 +27,7 @@ from scrapy.utils.test import get_crawler
|
||||
from scrapy.utils.python import to_bytes
|
||||
from scrapy.exceptions import NotConfigured
|
||||
|
||||
from tests.mockserver import MockServer
|
||||
from tests.mockserver import MockServer, ssl_context_factory
|
||||
from tests.spiders import SingleRequestSpider
|
||||
|
||||
class DummyDH(object):
|
||||
@ -102,6 +102,7 @@ class FileTestCase(unittest.TestCase):
|
||||
|
||||
class HttpTestCase(unittest.TestCase):
|
||||
|
||||
scheme = 'http'
|
||||
download_handler_cls = HTTPDownloadHandler
|
||||
|
||||
def setUp(self):
|
||||
@ -118,7 +119,12 @@ class HttpTestCase(unittest.TestCase):
|
||||
r.putChild(b"broken", BrokenDownloadResource())
|
||||
self.site = server.Site(r, timeout=None)
|
||||
self.wrapper = WrappingFactory(self.site)
|
||||
self.port = reactor.listenTCP(0, self.wrapper, interface='127.0.0.1')
|
||||
self.host = '127.0.0.1'
|
||||
if self.scheme == 'https':
|
||||
self.port = reactor.listenSSL(
|
||||
0, self.wrapper, ssl_context_factory(), interface=self.host)
|
||||
else:
|
||||
self.port = reactor.listenTCP(0, self.wrapper, interface=self.host)
|
||||
self.portno = self.port.getHost().port
|
||||
self.download_handler = self.download_handler_cls(Settings())
|
||||
self.download_request = self.download_handler.download_request
|
||||
@ -130,7 +136,7 @@ class HttpTestCase(unittest.TestCase):
|
||||
yield self.download_handler.close()
|
||||
|
||||
def getURL(self, path):
|
||||
return "http://127.0.0.1:%d/%s" % (self.portno, path)
|
||||
return "%s://%s:%d/%s" % (self.scheme, self.host, self.portno, path)
|
||||
|
||||
def test_download(self):
|
||||
request = Request(self.getURL('file'))
|
||||
@ -213,6 +219,12 @@ class Http10TestCase(HttpTestCase):
|
||||
download_handler_cls = HTTP10DownloadHandler
|
||||
|
||||
|
||||
class Https10TestCase(Http10TestCase):
|
||||
scheme = 'https'
|
||||
def test_timeout_download_from_spider(self):
|
||||
raise unittest.SkipTest("test_timeout_download_from_spider skipped under https")
|
||||
|
||||
|
||||
class Http11TestCase(HttpTestCase):
|
||||
"""HTTP 1.1 test case"""
|
||||
download_handler_cls = HTTP11DownloadHandler
|
||||
|
Loading…
x
Reference in New Issue
Block a user