From: daftshady Date: Sat, 28 Sep 2013 16:08:58 +0000 (+0900) Subject: added param to cookiejar_from_dict instead of creating new method. X-Git-Tag: v2.0.1~13^2~8^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=012f0334ce43fe23044fc58e4246a804db88650d;p=services%2Fpython-requests.git added param to cookiejar_from_dict instead of creating new method. --- diff --git a/requests/cookies.py b/requests/cookies.py index 95157e7..ea56c06 100644 --- a/requests/cookies.py +++ b/requests/cookies.py @@ -392,31 +392,21 @@ def morsel_to_cookie(morsel): return c -def cookiejar_from_dict(cookie_dict, cookiejar=None): +def cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True): """Returns a CookieJar from a key/value dictionary. :param cookie_dict: Dict of key/values to insert into CookieJar. + :param cookiejar: (optional) A cookiejar to add the cookies to. + :param overwrite: (optional) If False, will not replace cookies + already in the jar with new ones. """ if cookiejar is None: cookiejar = RequestsCookieJar() if cookie_dict is not None: + names_from_jar = [cookie.name for cookie in cookiejar] for name in cookie_dict: - cookiejar.set_cookie(create_cookie(name, cookie_dict[name])) - return cookiejar - - -def merge_session_cookies(cookiejar, cookie_dict): - """Merges cookie_dict with session CookieJar. + if overwrite or (name not in names_from_jar): + cookiejar.set_cookie(create_cookie(name, cookie_dict[name])) - :param cookiejar: Should be session cookie. - :param cookie_dict: Dict of key/values to be merged. - """ - if cookiejar is None: - cookiejar = RequestsCookieJar() - - if cookie_dict is not None: - for k in cookie_dict: - # Session should not be modified by request cookie. - if k not in [cookie.name for cookie in cookiejar]: - cookiejar.set_cookie(create_cookie(k, cookie_dict[k])) + return cookiejar diff --git a/requests/sessions.py b/requests/sessions.py index b917acc..eda9f92 100644 --- a/requests/sessions.py +++ b/requests/sessions.py @@ -13,7 +13,7 @@ from collections import Mapping from datetime import datetime from .compat import cookielib, OrderedDict, urljoin, urlparse -from .cookies import cookiejar_from_dict, extract_cookies_to_jar, RequestsCookieJar, merge_session_cookies +from .cookies import cookiejar_from_dict, extract_cookies_to_jar, RequestsCookieJar from .models import Request, PreparedRequest from .hooks import default_hooks, dispatch_hook from .utils import to_key_val_list, default_headers @@ -323,7 +323,7 @@ class Session(SessionRedirectMixin): prep = self.prepare_request(req) # Add param cookies to session cookies - merge_session_cookies(self.cookies, cookies) + self.cookies = cookiejar_from_dict(cookies, cookiejar=self.cookies, overwrite=False) proxies = proxies or {}