mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
Merge pull request #3754 from nateprewitt/3066_auth_and_data
test auth doesn't generate incorrect http headers
This commit is contained in:
@@ -173,3 +173,4 @@ Patches and Suggestions
|
||||
- Om Prakash Kumar <omprakash070@gmail.com> (`@iamprakashom <https://github.com/iamprakashom>`_)
|
||||
- Philipp Konrad <gardiac2002@gmail.com> (`@gardiac2002 <https://github.com/gardiac2002>`_)
|
||||
- Hussain Tamboli <hussaintamboli18@gmail.com> (`@hussaintamboli <https://github.com/hussaintamboli>`_)
|
||||
- Casey Davidson (`@davidsoncasey <https://github.com/davidsoncasey>`_)
|
||||
|
||||
@@ -1693,6 +1693,42 @@ class TestRequests:
|
||||
resp.close()
|
||||
assert resp.raw.closed
|
||||
|
||||
def test_empty_stream_with_auth_does_not_set_content_length_header(self, httpbin):
|
||||
"""Ensure that a byte stream with size 0 will not set both a Content-Length
|
||||
and Transfer-Encoding header.
|
||||
"""
|
||||
auth = ('user', 'pass')
|
||||
url = httpbin('post')
|
||||
file_obj = io.BytesIO(b'')
|
||||
r = requests.Request('POST', url, auth=auth, data=file_obj)
|
||||
prepared_request = r.prepare()
|
||||
assert 'Transfer-Encoding' in prepared_request.headers
|
||||
assert 'Content-Length' not in prepared_request.headers
|
||||
|
||||
def test_stream_with_auth_does_not_set_transfer_encoding_header(self, httpbin):
|
||||
"""Ensure that a byte stream with size > 0 will not set both a Content-Length
|
||||
and Transfer-Encoding header.
|
||||
"""
|
||||
auth = ('user', 'pass')
|
||||
url = httpbin('post')
|
||||
file_obj = io.BytesIO(b'test data')
|
||||
r = requests.Request('POST', url, auth=auth, data=file_obj)
|
||||
prepared_request = r.prepare()
|
||||
assert 'Transfer-Encoding' not in prepared_request.headers
|
||||
assert 'Content-Length' in prepared_request.headers
|
||||
|
||||
def test_chunked_upload_does_not_set_content_length_header(self, httpbin):
|
||||
"""Ensure that requests with a generator body stream using
|
||||
Transfer-Encoding: chunked, not a Content-Length header.
|
||||
"""
|
||||
data = (i for i in [b'a', b'b', b'c'])
|
||||
url = httpbin('post')
|
||||
r = requests.Request('POST', url, data=data)
|
||||
prepared_request = r.prepare()
|
||||
assert 'Transfer-Encoding' in prepared_request.headers
|
||||
assert 'Content-Length' not in prepared_request.headers
|
||||
|
||||
|
||||
class TestCaseInsensitiveDict:
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
|
||||
Reference in New Issue
Block a user