From 5fcaf45c33c35aa36794bddf97da82545ada5fff Mon Sep 17 00:00:00 2001 From: daftshady Date: Tue, 5 Nov 2013 18:00:23 +0900 Subject: [PATCH] update 'merge_cookies' not to create new instance. --- requests/cookies.py | 18 +++++++++++------- test_requests.py | 3 +-- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/requests/cookies.py b/requests/cookies.py index 20d24a3..8ff8b02 100644 --- a/requests/cookies.py +++ b/requests/cookies.py @@ -432,13 +432,17 @@ 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): - merged_cookie = cookiejar_from_dict( - cookies, cookiejar=merged_cookie, overwrite=False) + cookiejar = cookiejar_from_dict( + cookies, cookiejar=cookiejar, overwrite=False) elif isinstance(cookies, cookielib.CookieJar): - merged_cookie.update(cookies) + try: + if hasattr(cookiejar, 'update'): + cookiejar.update(cookies) + else: + raise CookieJarError + except CookieJarError: + for cookie_in_jar in cookies: + cookiejar.set_cookie(cookie_in_jar) - return merged_cookie + return cookiejar diff --git a/test_requests.py b/test_requests.py index 0f076ff..539de76 100755 --- a/test_requests.py +++ b/test_requests.py @@ -186,8 +186,7 @@ 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 isinstance(s.cookies, cookielib.CookieJar) - assert s.cookies['foo'] == 'bar' + assert s.cookies is cj def test_param_cookiejar_works(self): cj = cookielib.CookieJar() -- 2.34.1