From 01057dc12efdd3e875ddad48184ea4661f0be7a0 Mon Sep 17 00:00:00 2001 From: Andrew Svetlov Date: Sat, 27 Aug 2016 19:56:10 +0300 Subject: [PATCH] Remove fragment string in request path #846 --- CHANGES.rst | 2 ++ aiohttp/client_reqrep.py | 4 ++-- tests/test_client_request.py | 14 ++++++++++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 0fc60cda54a..1a9b7ea08ae 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -97,6 +97,8 @@ CHANGES - Deprecate debug parameter from app.make_handler(), use `Application(debug=True)` instead #1121 +- Remove fragment string in request path #846 + 0.22.5 (08-02-2016) ------------------- diff --git a/aiohttp/client_reqrep.py b/aiohttp/client_reqrep.py index 76fef70bf09..1e83c2d91d4 100644 --- a/aiohttp/client_reqrep.py +++ b/aiohttp/client_reqrep.py @@ -188,9 +188,9 @@ def update_path(self, params): query = params self.path = urllib.parse.urlunsplit(('', '', helpers.requote_uri(path), - query, fragment)) + query, '')) self.url = urllib.parse.urlunsplit( - (scheme, netloc, self.path, '', '')) + (scheme, netloc, self.path, '', fragment)) def update_headers(self, headers): """Update request headers.""" diff --git a/tests/test_client_request.py b/tests/test_client_request.py index 9bfe42475fa..b413570a873 100644 --- a/tests/test_client_request.py +++ b/tests/test_client_request.py @@ -309,13 +309,23 @@ def test_path_safe_chars_preserved(make_request): def test_params_are_added_before_fragment1(make_request): req = make_request('GET', "http://example.com/path#fragment", params={"a": "b"}) - assert req.path == "/path?a=b#fragment" + assert req.url == "http://example.com/path?a=b#fragment" def test_params_are_added_before_fragment2(make_request): req = make_request('GET', "http://example.com/path?key=value#fragment", params={"a": "b"}) - assert req.path == "/path?key=value&a=b#fragment" + assert req.url == "http://example.com/path?key=value&a=b#fragment" + + +def test_path_not_contain_fragment1(make_request): + req = make_request('GET', "http://example.com/path#fragment") + assert req.path == "/path" + + +def test_path_not_contain_fragment2(make_request): + req = make_request('GET', "http://example.com/path?key=value#fragment") + assert req.path == "/path?key=value" def test_cookies(make_request):