def get_cookies_dict_from_response(response): jar = CookieJar() jar.extract_cookies(response, response.request) cookie_objs = jar.make_cookies(response, response.request) cookies = {_.name: _.value for _ in cookie_objs} return cookies
def test_domain_allow(self): c = CookieJar(policy=DefaultCookiePolicy( blocked_domains=["acme.com"], allowed_domains=["www.acme.com"])) req = Request("http://acme.com/") headers = {"Set-Cookie": "CUSTOMER=WILE_E_COYOTE; path=/"} res = Response("http://acme.com/", headers=headers) c.extract_cookies(res, req) self.assertEquals(len(c), 0) req = Request("http://www.acme.com/") res = Response("http://www.acme.com/", headers=headers) c.extract_cookies(res, req) self.assertEquals(len(c), 1) req = Request("http://www.coyote.com/") res = Response("http://www.coyote.com/", headers=headers) c.extract_cookies(res, req) self.assertEquals(len(c), 1) # set a cookie with non-allowed domain... req = Request("http://www.coyote.com/") res = Response("http://www.coyote.com/", headers=headers) cookies = c.make_cookies(res, req) c.set_cookie(cookies[0]) self.assertEquals(len(c), 2) # ... and check is doesn't get returned c.add_cookie_header(req) assert 'Cookie' not in req.headers
def get_request_cookies(jar: CookieJar, request: Request) -> List[Cookie]: if isinstance(request.cookies, dict): cookie_list: List[Dict] = [{ "name": k, "value": v } for k, v in request.cookies.items()] else: cookie_list: List[Dict] = request.cookies cookies: List[str] = [format_cookie(x) for x in cookie_list] headers: Dict[str, List[str]] = {"Set-Cookie": cookies} response: Response = Response(request.url, headers=headers) return jar.make_cookies(response, request)
def test_domain_block(self): pol = DefaultCookiePolicy( rfc2965=True, blocked_domains=[".acme.com"]) c = CookieJar(policy=pol) headers = {'Set-Cookie': 'CUSTOMER=WILE_E_COYOTE; path=/'} req = Request("http://www.acme.com/") res = Response('http://www.acme.com/', headers=headers) c.extract_cookies(res, req) self.assertEquals(len(c), 0) p = pol.set_blocked_domains(["acme.com"]) c.extract_cookies(res, req) self.assertEquals(len(c), 1) c.clear() req = Request("http://www.roadrunner.net/") res = Response("http://www.roadrunner.net/", headers=headers) c.extract_cookies(res, req) self.assertEquals(len(c), 1) req = Request("http://www.roadrunner.net/") c.add_cookie_header(req) assert 'Cookie' in req.headers and 'Cookie2' in req.headers c.clear() pol.set_blocked_domains([".acme.com"]) c.extract_cookies(res, req) self.assertEquals(len(c), 1) # set a cookie with blocked domain... req = Request("http://www.acme.com/") res = Response("http://www.acme.com/", headers=headers) cookies = c.make_cookies(res, req) c.set_cookie(cookies[0]) self.assertEquals(len(c), 2) # ... and check is doesn't get returned c.add_cookie_header(req) assert 'Cookie' not in req.headers