Merged revisions 79047 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r79047 | senthil.kumaran | 2010-03-18 17:44:15 +0530 (Thu, 18 Mar 2010) | 3 lines Fix for Issue8135 - urllib.unquote to support mixed percent escapes ........
This commit is contained in:
parent
6044655d59
commit
34f9277d56
|
@ -440,6 +440,32 @@ class UnquotingTests(unittest.TestCase):
|
|||
"using unquote(): not all characters escaped: "
|
||||
"%s" % result)
|
||||
|
||||
def test_unquoting_badpercent(self):
|
||||
# Test unquoting on bad percent-escapes
|
||||
given = '%xab'
|
||||
expect = given
|
||||
result = urllib.unquote(given)
|
||||
self.assertEqual(expect, result, "using unquote(): %r != %r"
|
||||
% (expect, result))
|
||||
given = '%x'
|
||||
expect = given
|
||||
result = urllib.unquote(given)
|
||||
self.assertEqual(expect, result, "using unquote(): %r != %r"
|
||||
% (expect, result))
|
||||
given = '%'
|
||||
expect = given
|
||||
result = urllib.unquote(given)
|
||||
self.assertEqual(expect, result, "using unquote(): %r != %r"
|
||||
% (expect, result))
|
||||
|
||||
def test_unquoting_mixed_case(self):
|
||||
# Test unquoting on mixed-case hex digits in the percent-escapes
|
||||
given = '%Ab%eA'
|
||||
expect = '\xab\xea'
|
||||
result = urllib.unquote(given)
|
||||
self.assertEqual(expect, result, "using unquote(): %r != %r"
|
||||
% (expect, result))
|
||||
|
||||
def test_unquoting_parts(self):
|
||||
# Make sure unquoting works when have non-quoted characters
|
||||
# interspersed
|
||||
|
|
|
@ -1162,8 +1162,8 @@ def splitvalue(attr):
|
|||
if match: return match.group(1, 2)
|
||||
return attr, None
|
||||
|
||||
_hextochr = dict(('%02x' % i, chr(i)) for i in range(256))
|
||||
_hextochr.update(('%02X' % i, chr(i)) for i in range(256))
|
||||
_hexdig = '0123456789ABCDEFabcdef'
|
||||
_hextochr = dict((a+b, chr(int(a+b,16))) for a in _hexdig for b in _hexdig)
|
||||
|
||||
def unquote(s):
|
||||
"""unquote('abc%20def') -> 'abc def'."""
|
||||
|
|
|
@ -272,8 +272,9 @@ def urldefrag(url):
|
|||
# Cannot use directly from urllib as it would create circular reference.
|
||||
# urllib uses urlparse methods ( urljoin)
|
||||
|
||||
_hextochr = dict(('%02x' % i, chr(i)) for i in range(256))
|
||||
_hextochr.update(('%02X' % i, chr(i)) for i in range(256))
|
||||
|
||||
_hexdig = '0123456789ABCDEFabcdef'
|
||||
_hextochr = dict((a+b, chr(int(a+b,16))) for a in _hexdig for b in _hexdig)
|
||||
|
||||
def unquote(s):
|
||||
"""unquote('abc%20def') -> 'abc def'."""
|
||||
|
|
Loading…
Reference in New Issue