Added test case for quoted and illegal characters in the URL.

This is a test case for issue #369.
It passes in Python 2, but fails in Python 3 (though the test suite doesn't
actually work in Python 3, it can be shown to fail with some modification).
This commit is contained in:
Matt Giuca
2012-02-14 11:47:14 +11:00
parent 12f9aa3669
commit 329efcae6e
+22
View File
@@ -117,6 +117,28 @@ class RequestsTestSuite(TestSetup, unittest.TestCase):
requests.get(url=httpbin('get'), headers=heads)
def test_session_with_escaped_url(self):
# Test a URL that contains percent-escaped characters
# This URL should not be modified (double-escaped)
# Tests:
# - Quoted illegal characters ("%20" (' '), "%3C" ('<'), "%3E" ('>'))
# - Quoted reserved characters ("%25" ('%'), "%23" ('#'), "%2F" ('/'))
# - Quoted non-ASCII characters ("%C3%98", "%C3%A5")
path_fully_escaped = '%3Ca%25b%23c%2Fd%3E/%C3%98%20%C3%A5'
url = httpbin('get/' + path_fully_escaped)
response = get(url)
self.assertEqual(response.url, httpbin('get/' + path_fully_escaped))
# Test that illegal characters in a path get properly percent-escaped
# Tests:
# - Bare illegal characters (space, '<')
# - Bare non-ASCII characters ('\u00d8')
path = u'<a%25b%23c%2Fd%3E/\u00d8 %C3%A5'
url = httpbin('get/' + path)
response = get(url)
self.assertEqual(response.url, httpbin('get/' + path_fully_escaped))
def test_user_agent_transfers(self):
"""Issue XX"""