From 1adba3c9e94a7408584d0d819da6aa47b34ed0bd Mon Sep 17 00:00:00 2001 From: daftshady Date: Tue, 5 Nov 2013 17:00:01 +0900 Subject: [PATCH] modified 'merge_cookies' and update tests. made sessions.py to use that method when merging cookies. --- requests/cookies.py | 11 +++++++---- requests/sessions.py | 5 ++--- test_requests.py | 3 ++- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/requests/cookies.py b/requests/cookies.py index df614a2..20d24a3 100644 --- a/requests/cookies.py +++ b/requests/cookies.py @@ -432,10 +432,13 @@ def merge_cookies(cookiejar, cookies): if not isinstance(cookiejar, cookielib.CookieJar): raise ValueError('You can only merge into CookieJar') + merged_cookie = RequestsCookieJar() + merged_cookie.update(cookiejar) + if isinstance(cookies, dict): - cookiejar = cookiejar_from_dict( - cookies, cookiejar=cookiejar, overwrite=False) + merged_cookie = cookiejar_from_dict( + cookies, cookiejar=merged_cookie, overwrite=False) elif isinstance(cookies, cookielib.CookieJar): - cookiejar.update(cookies) + merged_cookie.update(cookies) - return cookiejar + return merged_cookie diff --git a/requests/sessions.py b/requests/sessions.py index c8d8c71..16bc1bb 100644 --- a/requests/sessions.py +++ b/requests/sessions.py @@ -246,9 +246,8 @@ class Session(SessionRedirectMixin): cookies = cookiejar_from_dict(cookies) # Merge with session cookies - merged_cookies = RequestsCookieJar() - merged_cookies.update(self.cookies) - merged_cookies.update(cookies) + merged_cookies = merge_cookies( + merge_cookies(RequestsCookieJar(), self.cookies), cookies) # Set environment's basic authentication if not explicitly set. diff --git a/test_requests.py b/test_requests.py index 539de76..0f076ff 100755 --- a/test_requests.py +++ b/test_requests.py @@ -186,7 +186,8 @@ class RequestsTestCase(unittest.TestCase): # Make sure the cookie was sent assert r.json()['cookies']['foo'] == 'bar' # Make sure the session cj is still the custom one - assert s.cookies is cj + assert isinstance(s.cookies, cookielib.CookieJar) + assert s.cookies['foo'] == 'bar' def test_param_cookiejar_works(self): cj = cookielib.CookieJar() -- 2.34.1