modified 'merge_cookies' and update tests.
authordaftshady <daftonshady@gmail.com>
Tue, 5 Nov 2013 08:00:01 +0000 (17:00 +0900)
committerdaftshady <daftonshady@gmail.com>
Tue, 26 Nov 2013 06:28:59 +0000 (15:28 +0900)
made sessions.py to use that method when merging cookies.

requests/cookies.py
requests/sessions.py
test_requests.py

index df614a2..20d24a3 100644 (file)
@@ -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
index c8d8c71..16bc1bb 100644 (file)
@@ -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.
index 539de76..0f076ff 100755 (executable)
@@ -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()