Commit faf4149f authored by Georg Brandl's avatar Georg Brandl

#6118: dont ignore encoding arguments for arguments with spaces in quote_plus().

parent 8ca69de2
...@@ -510,6 +510,21 @@ class QuotingTests(unittest.TestCase): ...@@ -510,6 +510,21 @@ class QuotingTests(unittest.TestCase):
self.assertEqual(expect, result, self.assertEqual(expect, result,
"using quote(): %r != %r" % (expect, result)) "using quote(): %r != %r" % (expect, result))
def test_quote_plus_with_unicode(self):
# Encoding (latin-1) test for quote_plus
given = "\xa2\xd8 \xff"
expect = "%A2%D8+%FF"
result = urllib.parse.quote_plus(given, encoding="latin-1")
self.assertEqual(expect, result,
"using quote_plus(): %r != %r" % (expect, result))
# Errors test for quote_plus
given = "ab\u6f22\u5b57 cd"
expect = "ab%3F%3F+cd"
result = urllib.parse.quote_plus(given, encoding="latin-1",
errors="replace")
self.assertEqual(expect, result,
"using quote_plus(): %r != %r" % (expect, result))
class UnquotingTests(unittest.TestCase): class UnquotingTests(unittest.TestCase):
"""Tests for unquote() and unquote_plus() """Tests for unquote() and unquote_plus()
......
...@@ -488,7 +488,7 @@ def quote_plus(string, safe='', encoding=None, errors=None): ...@@ -488,7 +488,7 @@ def quote_plus(string, safe='', encoding=None, errors=None):
space = ' ' space = ' '
else: else:
space = b' ' space = b' '
string = quote(string, safe + space) string = quote(string, safe + space, encoding, errors)
return string.replace(' ', '+') return string.replace(' ', '+')
def quote_from_bytes(bs, safe='/'): def quote_from_bytes(bs, safe='/'):
......
...@@ -34,6 +34,9 @@ Core and Builtins ...@@ -34,6 +34,9 @@ Core and Builtins
Library Library
------- -------
- Issue #6118: urllib.parse.quote_plus ignored the encoding and errors
arguments for strings with a space in them.
- In unittest, using a skipping decorator on a class is now equivalent to - In unittest, using a skipping decorator on a class is now equivalent to
skipping every test on the class. The ClassTestSuite class has been removed. skipping every test on the class. The ClassTestSuite class has been removed.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment