mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
Merge pull request #2238 from buttscicles/byte-urls
Support bytestring URLs on Python 3.x
This commit is contained in:
@@ -155,3 +155,4 @@ Patches and Suggestions
|
||||
- Ben Bass (`@codedstructure <https://github.com/codedstructure>`_)
|
||||
- Jonathan Wong <evolutionace@gmail.com> (`@ContinuousFunction <https://github.com/ContinuousFunction>`_)
|
||||
- Martin Jul (`@mjul <https://github.com/mjul>`_)
|
||||
- Joe Alcorn (`@buttscicles <https://github.com/buttscicles>`_)
|
||||
|
||||
+7
-6
@@ -326,13 +326,14 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
|
||||
def prepare_url(self, url, params):
|
||||
"""Prepares the given HTTP URL."""
|
||||
#: Accept objects that have string representations.
|
||||
#: We're unable to blindy call unicode/str functions
|
||||
#: as this will include the bytestring indicator (b'')
|
||||
#: on python 3.x.
|
||||
#: https://github.com/kennethreitz/requests/pull/2238
|
||||
try:
|
||||
url = unicode(url)
|
||||
except NameError:
|
||||
# We're on Python 3.
|
||||
url = str(url)
|
||||
except UnicodeDecodeError:
|
||||
pass
|
||||
url = url.decode('utf8')
|
||||
except AttributeError:
|
||||
url = unicode(url) if is_py2 else str(url)
|
||||
|
||||
# Don't do any URL preparation for non-HTTP schemes like `mailto`,
|
||||
# `data` etc to work around exceptions from `url_parse`, which
|
||||
|
||||
@@ -591,6 +591,12 @@ class RequestsTestCase(unittest.TestCase):
|
||||
assert resp.json()['headers'][
|
||||
'Dummy-Auth-Test'] == 'dummy-auth-test-ok'
|
||||
|
||||
def test_prepare_request_with_bytestring_url(self):
|
||||
req = requests.Request('GET', b'https://httpbin.org/')
|
||||
s = requests.Session()
|
||||
prep = s.prepare_request(req)
|
||||
assert prep.url == "https://httpbin.org/"
|
||||
|
||||
def test_links(self):
|
||||
r = requests.Response()
|
||||
r.headers = {
|
||||
|
||||
Reference in New Issue
Block a user