mirror of https://github.com/scrapy/scrapy.git
Add a test for receiving duplicate headers
This commit is contained in:
parent
517ed0749b
commit
d9f6de6bf5
|
|
@ -214,6 +214,12 @@ class LargeChunkedFileResource(resource.Resource):
|
|||
return server.NOT_DONE_YET
|
||||
|
||||
|
||||
class DuplicateHeaderResource(resource.Resource):
|
||||
def render(self, request):
|
||||
request.responseHeaders.setRawHeaders(b"Set-Cookie", [b"a=b", b"c=d"])
|
||||
return b""
|
||||
|
||||
|
||||
class HttpTestCase(unittest.TestCase):
|
||||
scheme = 'http'
|
||||
download_handler_cls: Type = HTTPDownloadHandler
|
||||
|
|
@ -239,6 +245,7 @@ class HttpTestCase(unittest.TestCase):
|
|||
r.putChild(b"contentlength", ContentLengthHeaderResource())
|
||||
r.putChild(b"nocontenttype", EmptyContentTypeHeaderResource())
|
||||
r.putChild(b"largechunkedfile", LargeChunkedFileResource())
|
||||
r.putChild(b"duplicate-header", DuplicateHeaderResource())
|
||||
r.putChild(b"echo", Echo())
|
||||
self.site = server.Site(r, timeout=None)
|
||||
self.wrapper = WrappingFactory(self.site)
|
||||
|
|
@ -407,6 +414,16 @@ class HttpTestCase(unittest.TestCase):
|
|||
HtmlResponse,
|
||||
)
|
||||
|
||||
def test_get_duplicate_header(self):
|
||||
def _test(response):
|
||||
self.assertEqual(
|
||||
response.headers.getlist(b'Set-Cookie'),
|
||||
[b'a=b', b'c=d'],
|
||||
)
|
||||
|
||||
request = Request(self.getURL('duplicate-header'))
|
||||
return self.download_request(request, Spider('foo')).addCallback(_test)
|
||||
|
||||
|
||||
class Http10TestCase(HttpTestCase):
|
||||
"""HTTP 1.0 test case"""
|
||||
|
|
|
|||
Loading…
Reference in New Issue