on Python 2 u'é'.decode('utf8') fails with UnicodeEncodeError,
but only AttributeError is caught.
This only calls decode on known bytes objects.
#: as this will include the bytestring indicator (b'')
#: on python 3.x.
#: https://github.com/kennethreitz/requests/pull/2238
- try:
+ if isinstance(url, bytes):
url = url.decode('utf8')
- except AttributeError:
+ else:
url = unicode(url) if is_py2 else str(url)
# Don't do any URL preparation for non-HTTP schemes like `mailto`,
)
assert_copy(p, p.copy())
+def test_prepare_unicode_url():
+ p = PreparedRequest()
+ p.prepare(
+ method='GET',
+ url=u('http://www.example.com/üniçø∂é')
+ )
+ assert_copy(p, p.copy())
+
if __name__ == '__main__':
unittest.main()