mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
fixed param handling in Request.full_url
This commit is contained in:
@@ -105,3 +105,4 @@ Patches and Suggestions
|
||||
- Danilo Bargen (gwrtheyrn)
|
||||
- Torsten Landschoff
|
||||
- Michael Holler (apotheos)
|
||||
- Matthias Rahlf <matthias@webding.de>
|
||||
|
||||
+5
-5
@@ -395,14 +395,14 @@ class Request(object):
|
||||
if isinstance(fragment, str):
|
||||
fragment = fragment.encode('utf-8')
|
||||
|
||||
url = (urlunparse([scheme, netloc, path, params, query, fragment]))
|
||||
|
||||
enc_params = self._encode_params(self.params)
|
||||
if enc_params:
|
||||
if urlparse(url).query:
|
||||
url = '%s&%s' % (url, enc_params)
|
||||
if query:
|
||||
query = '%s&%s' % (query, enc_params)
|
||||
else:
|
||||
url = '%s?%s' % (url, enc_params)
|
||||
query = enc_params
|
||||
|
||||
url = (urlunparse([scheme, netloc, path, params, query, fragment]))
|
||||
|
||||
if self.config.get('encode_uri', True):
|
||||
url = requote_uri(url)
|
||||
|
||||
@@ -83,6 +83,16 @@ class RequestsTestSuite(TestSetup, TestBaseMixin, unittest.TestCase):
|
||||
|
||||
self.assertEqual(request.path_url, "/get/test%20case")
|
||||
|
||||
def test_params_are_added_before_fragment(self):
|
||||
request = requests.Request(
|
||||
"http://example.com/path#fragment", params={"a": "b"})
|
||||
self.assertEqual(request.full_url,
|
||||
"http://example.com/path?a=b#fragment")
|
||||
request = requests.Request(
|
||||
"http://example.com/path?key=value#fragment", params={"a": "b"})
|
||||
self.assertEqual(request.full_url,
|
||||
"http://example.com/path?key=value&a=b#fragment")
|
||||
|
||||
def test_HTTP_200_OK_GET(self):
|
||||
r = get(httpbin('get'))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
Reference in New Issue
Block a user