Fixed issue #3696. Added a test for it as well.

This commit is contained in:
Hussain
2016-11-16 22:48:45 +05:30
parent eb39a557bd
commit 248d3e9f0f
2 changed files with 8 additions and 0 deletions
+3
View File
@@ -343,6 +343,9 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
else:
url = unicode(url) if is_py2 else str(url)
# Remove leading and trailing whitespaces from url
url = url.strip()
# Don't do any URL preparation for non-HTTP schemes like `mailto`,
# `data` etc to work around exceptions from `url_parse`, which
# handles RFC 3986 only.
+5
View File
@@ -140,6 +140,11 @@ class TestRequests:
data=u"ööö".encode("utf-8")).prepare()
assert isinstance(request.body, bytes)
def test_whitespaces_are_removed_from_url(self):
# Test for issue #3696
request = requests.Request('GET', ' http://example.com ').prepare()
assert request.url == 'http://example.com/'
@pytest.mark.parametrize('scheme', ('http://', 'HTTP://', 'hTTp://', 'HttP://'))
def test_mixed_case_scheme_acceptable(self, httpbin, scheme):
s = requests.Session()