summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2009-05-26 18:31:11 (GMT)
committerGeorg Brandl <georg@python.org>2009-05-26 18:31:11 (GMT)
commitfaf4149f72575a826f65f7e0747254088195ef9b (patch)
tree1fdfc7d8f1f18776188e051e4a695866bc428ae2
parent8ca69de23772af21a2e697ab7e73a72e29ef178d (diff)
downloadcpython-faf4149f72575a826f65f7e0747254088195ef9b.zip
cpython-faf4149f72575a826f65f7e0747254088195ef9b.tar.gz
cpython-faf4149f72575a826f65f7e0747254088195ef9b.tar.bz2
#6118: dont ignore encoding arguments for arguments with spaces in quote_plus().
-rw-r--r--Lib/test/test_urllib.py15
-rw-r--r--Lib/urllib/parse.py2
-rw-r--r--Misc/NEWS3
3 files changed, 19 insertions, 1 deletions
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
index da6bc2d..ba742af 100644
--- a/Lib/test/test_urllib.py
+++ b/Lib/test/test_urllib.py
@@ -510,6 +510,21 @@ class QuotingTests(unittest.TestCase):
self.assertEqual(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):
"""Tests for unquote() and unquote_plus()
diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py
index 9033683..726e85f 100644
--- a/Lib/urllib/parse.py
+++ b/Lib/urllib/parse.py
@@ -488,7 +488,7 @@ def quote_plus(string, safe='', encoding=None, errors=None):
space = ' '
else:
space = b' '
- string = quote(string, safe + space)
+ string = quote(string, safe + space, encoding, errors)
return string.replace(' ', '+')
def quote_from_bytes(bs, safe='/'):
diff --git a/Misc/NEWS b/Misc/NEWS
index 91b5dfc..e8e2e55 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -34,6 +34,9 @@ Core and Builtins
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
skipping every test on the class. The ClassTestSuite class has been removed.