From: daftshady Date: Sat, 28 Sep 2013 07:33:05 +0000 (+0900) Subject: Fixed #1630, added test case for cookie persistence. X-Git-Tag: v2.0.1~13^2~8^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=39fe0068aa657764778782ce4ca11d5e3ee08c66;p=services%2Fpython-requests.git Fixed #1630, added test case for cookie persistence. --- diff --git a/requests/sessions.py b/requests/sessions.py index aa956d3..a7e6d4e 100644 --- a/requests/sessions.py +++ b/requests/sessions.py @@ -146,6 +146,13 @@ class SessionRedirectMixin(object): extract_cookies_to_jar(self.cookies, prepared_request, resp.raw) + # Restore original cookies in redirects response. + headers = resp.request.headers + try: + headers['Cookie'] = req.headers['Cookie'] + except KeyError: + pass + i += 1 yield resp diff --git a/test_requests.py b/test_requests.py index d1e6ed0..3d6665b 100755 --- a/test_requests.py +++ b/test_requests.py @@ -164,6 +164,12 @@ class RequestsTestCase(unittest.TestCase): s.get(httpbin('cookies/set?foo="bar:baz"')) self.assertTrue(s.cookies['foo'] == '"bar:baz"') + def test_cookie_persists_via_api(self): + s = requests.session() + r = s.get(httpbin('redirect/1'), cookies={'foo':'bar'}) + self.assertTrue('foo' in r.request.headers['Cookie']) + self.assertTrue('foo' in r.history[0].request.headers['Cookie']) + def test_request_cookie_overrides_session_cookie(self): s = requests.session() s.cookies['foo'] = 'bar'