diff --git a/requests/models.py b/requests/models.py index 82c75729..c2cbe979 100644 --- a/requests/models.py +++ b/requests/models.py @@ -351,8 +351,8 @@ class Request(object): if not path: path = '/' - # if is_py3: - path = quote(path.encode('utf-8')) + if is_py3: + path = quote(path.encode('utf-8')) url.append(path) diff --git a/test_requests.py b/test_requests.py index 034f469c..c3f3deb6 100644 --- a/test_requests.py +++ b/test_requests.py @@ -72,6 +72,12 @@ class RequestsTestSuite(TestSetup, unittest.TestCase): def test_invalid_url(self): self.assertRaises(ValueError, get, 'hiwpefhipowhefopw') + + def test_path_is_not_double_encoded(self): + request = requests.Request("http://0.0.0.0/get/~test") + + assert request.path_url == "/get/%7Etest" + def test_HTTP_200_OK_GET(self): r = get(httpbin('/get')) self.assertEqual(r.status_code, 200)