diff options
author | Georg Brandl <georg@python.org> | 2009-05-26 18:31:11 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2009-05-26 18:31:11 (GMT) |
commit | faf4149f72575a826f65f7e0747254088195ef9b (patch) | |
tree | 1fdfc7d8f1f18776188e051e4a695866bc428ae2 | |
parent | 8ca69de23772af21a2e697ab7e73a72e29ef178d (diff) | |
download | cpython-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.py | 15 | ||||
-rw-r--r-- | Lib/urllib/parse.py | 2 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
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='/'): @@ -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. |