mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
fix #549 Add 'prefetch' to Session.__attrs__ and Requests.__init__
This commit is contained in:
+5
-1
@@ -61,6 +61,7 @@ class Request(object):
|
||||
proxies=None,
|
||||
hooks=None,
|
||||
config=None,
|
||||
prefetch=False,
|
||||
_poolmanager=None,
|
||||
verify=None,
|
||||
session=None,
|
||||
@@ -149,6 +150,9 @@ class Request(object):
|
||||
#: SSL Certificate
|
||||
self.cert = cert
|
||||
|
||||
#: Prefetch response content
|
||||
self.prefetch = prefetch
|
||||
|
||||
if headers:
|
||||
headers = CaseInsensitiveDict(self.headers)
|
||||
else:
|
||||
@@ -624,7 +628,7 @@ class Request(object):
|
||||
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
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ class Session(object):
|
||||
|
||||
__attrs__ = [
|
||||
'headers', 'cookies', 'auth', 'timeout', 'proxies', 'hooks',
|
||||
'params', 'config', 'verify', 'cert']
|
||||
'params', 'config', 'verify', 'cert', 'prefetch']
|
||||
|
||||
|
||||
def __init__(self,
|
||||
@@ -179,6 +179,7 @@ class Session(object):
|
||||
allow_redirects=allow_redirects,
|
||||
proxies=proxies,
|
||||
config=config,
|
||||
prefetch=prefetch,
|
||||
verify=verify,
|
||||
cert=cert,
|
||||
_poolmanager=self.poolmanager
|
||||
|
||||
@@ -708,6 +708,22 @@ class RequestsTestSuite(TestSetup, unittest.TestCase):
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user