def test_cookies():
mw = _get_mw()
cookie_mw = _get_cookie_mw()
def request_with_cookies(cookies):
req = SplashRequest(
'http://example.com/foo',
endpoint='execute',
args={'lua_source': 'function main() end'},
magic_response=True,
cookies=cookies)
req = cookie_mw.process_request(req, None) or req
req = mw.process_request(req, None) or req
return req
def response_with_cookies(req, cookies):
resp_data = {
'html': '<html><body>Hello</body></html>',
'headers': [],
'cookies': cookies,
}
resp = TextResponse(
'http://mysplash.example.com/execute',
headers={b'Content-Type': b'application/json'},
body=json.dumps(resp_data).encode('utf8'))
resp = mw.process_response(req, resp, None)
resp = cookie_mw.process_response(req, resp, None)
return resp
# Concurent requests
req1 = request_with_cookies({'spam': 'ham'})
req2 = request_with_cookies({'bom': 'bam'})
resp1 = response_with_cookies(req1, [
{'name': 'spam', 'value': 'ham'},
{'name': 'spam_x', 'value': 'ham_x'},
])
resp2 = response_with_cookies(req2, [
{'name': 'spam', 'value': 'ham'}, # because req2 was made after req1
{'name': 'bom_x', 'value': 'bam_x'},
])
assert resp1.cookiejar is resp2.cookiejar
cookies = {c.name: c.value for c in resp1.cookiejar}
assert cookies == {'spam': 'ham', 'spam_x': 'ham_x', 'bom_x': 'bam_x'}
# Removing already removed
req1 = request_with_cookies({'spam': 'ham'})
req2 = request_with_cookies({'spam': 'ham', 'pom': 'pam'})
resp2 = response_with_cookies(req2, [
{'name': 'pom', 'value': 'pam'},
])
resp1 = response_with_cookies(req1, [])
assert resp1.cookiejar is resp2.cookiejar
cookies = {c.name: c.value for c in resp1.cookiejar}
assert cookies == {'pom': 'pam'}
test_middleware.py 文件源码
python
阅读 24
收藏 0
点赞 0
评论 0
评论列表
文章目录