mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
updating pickling tests for PreparedRequest
This commit is contained in:
+31
-43
@@ -1053,63 +1053,51 @@ class TestRequests:
|
||||
assert r.request.url == pr.request.url
|
||||
assert r.request.headers == pr.request.headers
|
||||
|
||||
def test_prepared_request_is_pickleable(self):
|
||||
def test_prepared_request_is_pickleable(self, httpbin):
|
||||
p = requests.Request('GET', httpbin('get')).prepare()
|
||||
|
||||
# Verify we can pickle the request.
|
||||
assert pickle.dumps(p)
|
||||
r = pickle.dumps(p)
|
||||
# Verify PreparedRequest can be pickled and unpickled
|
||||
r = pickle.loads(pickle.dumps(p))
|
||||
assert r.url == p.url
|
||||
assert r.headers == p.headers
|
||||
assert r.body == p.body
|
||||
|
||||
# Verify we can use the pickled request.
|
||||
assert pickle.loads(r)
|
||||
r = pickle.loads(r)
|
||||
|
||||
# Verify we can use the unpickled request.
|
||||
# Verify unpickled PreparedRequest sends properly
|
||||
s = requests.Session()
|
||||
r = s.send(r)
|
||||
resp = s.send(r)
|
||||
assert resp.status_code == 200
|
||||
|
||||
assert r.status_code == 200
|
||||
|
||||
def test_prepared_request_with_file_is_pickleable(self):
|
||||
data = {'a': 0.0}
|
||||
files = {'b': 'foo'}
|
||||
r = requests.Request('POST', httpbin('post'), data=data, files=files)
|
||||
def test_prepared_request_with_file_is_pickleable(self, httpbin):
|
||||
files = {'file': open(__file__, 'rb')}
|
||||
r = requests.Request('POST', httpbin('post'), files=files)
|
||||
p = r.prepare()
|
||||
|
||||
# Verify we can pickle the request.
|
||||
assert pickle.dumps(p)
|
||||
r = pickle.dumps(p)
|
||||
# Verify PreparedRequest can be pickled and unpickled
|
||||
r = pickle.loads(pickle.dumps(p))
|
||||
assert r.url == p.url
|
||||
assert r.headers == p.headers
|
||||
assert r.body == p.body
|
||||
|
||||
# Verify we can use the pickled request.
|
||||
assert pickle.loads(r)
|
||||
r = pickle.loads(r)
|
||||
|
||||
# Verify we can use the unpickled request.
|
||||
# Verify unpickled PreparedRequest sends properly
|
||||
s = requests.Session()
|
||||
r = s.send(r)
|
||||
resp = s.send(r)
|
||||
assert resp.status_code == 200
|
||||
|
||||
assert r.status_code == 200
|
||||
|
||||
def test_prepared_request_with_hook_is_pickleable(self):
|
||||
def print_url(r, *args, **kwargs):
|
||||
print(r.url)
|
||||
|
||||
r = requests.Request('POST', httpbin('post'), hooks=dict(response=print_url))
|
||||
def test_prepared_request_with_hook_is_pickleable(self, httpbin):
|
||||
r = requests.Request('GET', httpbin('get'), hooks=default_hooks())
|
||||
p = r.prepare()
|
||||
|
||||
# Verify we can pickle the request.
|
||||
assert pickle.dumps(p)
|
||||
r = pickle.dumps(p)
|
||||
# Verify PreparedRequest can be pickled
|
||||
r = pickle.loads(pickle.dumps(p))
|
||||
assert r.url == p.url
|
||||
assert r.headers == p.headers
|
||||
assert r.body == p.body
|
||||
assert r.hooks == p.hooks
|
||||
|
||||
# Verify we can use the pickled request.
|
||||
assert pickle.loads(r)
|
||||
r = pickle.loads(r)
|
||||
|
||||
# Verify we can use the unpickled request.
|
||||
# Verify unpickled PreparedRequest sends properly
|
||||
s = requests.Session()
|
||||
r = s.send(r)
|
||||
|
||||
assert r.status_code == 200
|
||||
resp = s.send(r)
|
||||
assert resp.status_code == 200
|
||||
|
||||
def test_cannot_send_unprepared_requests(self, httpbin):
|
||||
r = requests.Request(url=httpbin())
|
||||
|
||||
Reference in New Issue
Block a user