summaryrefslogtreecommitdiff
path: root/requests/models.py
diff options
context:
space:
mode:
authorIan Cordasco <graffatcolmingov@gmail.com>2015-04-05 21:27:33 -0500
committerIan Cordasco <graffatcolmingov@gmail.com>2015-04-05 21:49:52 -0500
commit36093e69c70b9b24dd1e007befa35ad891313f51 (patch)
treef180f8b8d8ce0dbadacc79696b4626ec75b71496 /requests/models.py
parent18e678c1f897d5bcc934f0b1d5788afee9c37ada (diff)
downloadpython-requests-36093e69c70b9b24dd1e007befa35ad891313f51.tar.gz
Copy a PreparedRequest's CookieJar reliably
When a PreparedRequests's cookie jar is not a RequestsCookieJar instance, it will not have a "copy" method. By adding _copy_cookie_jar we can reliably copy cookie jars so that we have an actual copy instead of the same instance on different prepared requests. This also updates the RequestsCookieJar.update logic to create copies of cookies from the other jar. Closes #2527
Diffstat (limited to 'requests/models.py')
-rw-r--r--requests/models.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/requests/models.py b/requests/models.py
index cb153aa5..12304adb 100644
--- a/requests/models.py
+++ b/requests/models.py
@@ -15,7 +15,7 @@ from .hooks import default_hooks
from .structures import CaseInsensitiveDict
from .auth import HTTPBasicAuth
-from .cookies import cookiejar_from_dict, get_cookie_header
+from .cookies import cookiejar_from_dict, get_cookie_header, _copy_cookie_jar
from .packages.urllib3.fields import RequestField
from .packages.urllib3.filepost import encode_multipart_formdata
from .packages.urllib3.util import parse_url
@@ -320,7 +320,7 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
p.method = self.method
p.url = self.url
p.headers = self.headers.copy() if self.headers is not None else None
- p._cookies = self._cookies.copy() if self._cookies is not None else None
+ p._cookies = _copy_cookie_jar(self._cookies)
p.body = self.body
p.hooks = self.hooks
return p