Skip to content

Commit 8a7c9e4

Browse files
committed
Move to RFC 3986 for normalizing URLs, allowing ~ in URL path components
Matches python behavior since version 3.7 and also browser behavior
1 parent 8820acf commit 8a7c9e4

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

mechanize/_urllib2_fork.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ def request_host(request):
138138
b"ABCDEFGHIJKLMNOPQRSTUVWXYZ" b"abcdefghijklmnopqrstuvwxyz" b"0123456789._!-"
139139
))
140140
USERINFO_CHARS = ZONE_ID_CHARS | set(bytearray(b"$&'()*+,;=:"))
141-
PATH_CHARS = USERINFO_CHARS | set(bytearray(b'@/'))
141+
PATH_CHARS = USERINFO_CHARS | set(bytearray(b'@/~'))
142142
QUERY_CHARS = FRAGMENT_CHARS = PATH_CHARS | {ord(b"?")}
143143

144144

test/test_urllib2.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1871,11 +1871,11 @@ def test_add_data(self):
18711871
self.assertEqual("POST", self.get.get_method())
18721872

18731873
def test_get_full_url(self):
1874-
self.assertEqual("http://www.python.org/%7Ejeremy/",
1874+
self.assertEqual("http://www.python.org/~jeremy/",
18751875
self.get.get_full_url())
18761876

18771877
def test_selector(self):
1878-
self.assertEqual("/%7Ejeremy/", self.get.get_selector())
1878+
self.assertEqual("/~jeremy/", self.get.get_selector())
18791879
req = Request("http://www.python.org/")
18801880
self.assertEqual("/", req.get_selector())
18811881

0 commit comments

Comments
 (0)