mirror of https://github.com/scrapy/scrapy.git
cookies: check mw outputs. refs #73
--HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%401085
This commit is contained in:
parent
315a24add4
commit
45f55c0df0
|
|
@ -35,7 +35,7 @@ class CookiesMiddleware(object):
|
|||
|
||||
def process_response(self, request, response, spider):
|
||||
if request.meta.get('dont_merge_cookies', False):
|
||||
return
|
||||
return response
|
||||
|
||||
# extract cookies from Set-Cookie and drop invalid/expired cookies
|
||||
jar = self.jars[spider.domain_name]
|
||||
|
|
|
|||
|
|
@ -23,65 +23,64 @@ class CookiesMiddlewareTest(TestCase):
|
|||
def test_basic(self):
|
||||
headers = {'Set-Cookie': 'C1=value1; path=/'}
|
||||
req = Request('http://scrapytest.org/')
|
||||
self.mw.process_request(req, self.spider)
|
||||
|
||||
assert self.mw.process_request(req, self.spider) is None
|
||||
assert 'Cookie' not in req.headers
|
||||
|
||||
res = Response('http://scrapytest.org/', headers=headers)
|
||||
self.mw.process_response(req, res, self.spider)
|
||||
assert self.mw.process_response(req, res, self.spider) is res
|
||||
|
||||
#assert res.cookies
|
||||
|
||||
req2 = Request('http://scrapytest.org/sub1/')
|
||||
self.mw.process_request(req2, self.spider)
|
||||
assert self.mw.process_request(req2, self.spider) is None
|
||||
self.assertEquals(req2.headers.get('Cookie'), "C1=value1")
|
||||
|
||||
def test_http_exception(self):
|
||||
req = Request('http://scrapytest.org/')
|
||||
assert self.mw.process_request(req, self.spider) is None
|
||||
assert 'Cookie' not in req.headers
|
||||
|
||||
headers = {'Set-Cookie': 'C1=value1; path=/'}
|
||||
res = Response('http://scrapytest.org/', headers=headers)
|
||||
exc = HttpException(302, 'Redirect', res)
|
||||
|
||||
req = Request('http://scrapytest.org/')
|
||||
self.mw.process_request(req, self.spider)
|
||||
assert 'Cookie' not in req.headers
|
||||
|
||||
self.mw.process_exception(req, exc, self.spider)
|
||||
assert self.mw.process_exception(req, exc, self.spider) is None
|
||||
#assert exc.response.cookies
|
||||
|
||||
req2 = Request('http://scrapytest.org/sub1/')
|
||||
self.mw.process_request(req2, self.spider)
|
||||
assert self.mw.process_request(req2, self.spider) is None
|
||||
self.assertEquals(req2.headers.get('Cookie'), "C1=value1")
|
||||
|
||||
|
||||
def test_dont_merge_cookies(self):
|
||||
# merge some cookies into jar
|
||||
headers = {'Set-Cookie': 'C1=value1; path=/'}
|
||||
req = Request('http://scrapytest.org/')
|
||||
res = Response('http://scrapytest.org/', headers=headers)
|
||||
self.mw.process_response(req, res, self.spider)
|
||||
assert self.mw.process_response(req, res, self.spider) is res
|
||||
|
||||
# test Cookie header is not seted to request
|
||||
req = Request('http://scrapytest.org/dontmerge', meta={'dont_merge_cookies': 1})
|
||||
self.mw.process_request(req, self.spider)
|
||||
assert self.mw.process_request(req, self.spider) is None
|
||||
assert 'Cookie' not in req.headers
|
||||
|
||||
# check that returned cookies are not merged back to jar
|
||||
res = Response('http://scrapytest.org/dontmerge', headers={'Set-Cookie': 'dont=mergeme; path=/'})
|
||||
self.mw.process_response(req, res, self.spider)
|
||||
assert self.mw.process_response(req, res, self.spider) is res
|
||||
|
||||
req = Request('http://scrapytest.org/mergeme')
|
||||
self.mw.process_request(req, self.spider)
|
||||
assert self.mw.process_request(req, self.spider) is None
|
||||
self.assertEquals(req.headers.get('Cookie'), 'C1=value1')
|
||||
|
||||
def test_merge_request_cookies(self):
|
||||
req = Request('http://scrapytest.org/', cookies={'galleta': 'salada'})
|
||||
self.mw.process_request(req, self.spider)
|
||||
assert self.mw.process_request(req, self.spider) is None
|
||||
self.assertEquals(req.headers.get('Cookie'), 'galleta=salada')
|
||||
|
||||
headers = {'Set-Cookie': 'C1=value1; path=/'}
|
||||
res = Response('http://scrapytest.org/', headers=headers)
|
||||
self.mw.process_response(req, res, self.spider)
|
||||
assert self.mw.process_response(req, res, self.spider) is res
|
||||
|
||||
req2 = Request('http://scrapytest.org/sub1/')
|
||||
self.mw.process_request(req2, self.spider)
|
||||
assert self.mw.process_request(req2, self.spider) is None
|
||||
self.assertEquals(req2.headers.get('Cookie'), "C1=value1; galleta=salada")
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue