proxies=None,
hooks=None,
config=None,
+ prefetch=False,
_poolmanager=None,
verify=None,
session=None,
#: SSL Certificate
self.cert = cert
+ #: Prefetch response content
+ self.prefetch = prefetch
+
if headers:
headers = CaseInsensitiveDict(self.headers)
else:
self.__dict__.update(r.__dict__)
# If prefetch is True, mark content as consumed.
- if prefetch:
+ if prefetch or self.prefetch:
# Save the response.
self.response.content
__attrs__ = [
'headers', 'cookies', 'auth', 'timeout', 'proxies', 'hooks',
- 'params', 'config', 'verify', 'cert']
+ 'params', 'config', 'verify', 'cert', 'prefetch']
def __init__(self,
allow_redirects=allow_redirects,
proxies=proxies,
config=config,
+ prefetch=prefetch,
verify=verify,
cert=cert,
_poolmanager=self.poolmanager
self.assertEqual(s.cookies, ds.cookies)
self.assertEqual(s.auth, ds.auth)
+ def test_unpickled_session_requests(self):
+ s = requests.session()
+ r = get(httpbin('cookies', 'set', 'k', 'v'), allow_redirects=True, session=s)
+ c = json.loads(r.text).get('cookies')
+ assert 'k' in c
+
+ ds = pickle.loads(pickle.dumps(s))
+ r = get(httpbin('cookies'), session=ds)
+ c = json.loads(r.text).get('cookies')
+ assert 'k' in c
+
+ ds1 = pickle.loads(pickle.dumps(requests.session()))
+ ds2 = pickle.loads(pickle.dumps(requests.session(prefetch=True)))
+ assert not ds1.prefetch
+ assert ds2.prefetch
+
def test_invalid_content(self):
# WARNING: if you're using a terrible DNS provider (comcast),
# this will fail.