Revert 1.170. Add tests.

This commit is contained in:
Raymond Hettinger 2005-09-10 14:30:09 +00:00
parent 803ce801ab
commit 2bdec7bfb0
2 changed files with 12 additions and 3 deletions

View file

@ -353,6 +353,12 @@ class QuotingTests(unittest.TestCase):
self.assertEqual(expect, result, self.assertEqual(expect, result,
"using quote_plus(): %s != %s" % (expect, result)) "using quote_plus(): %s != %s" % (expect, result))
def test_quoting_plus(self):
self.assertEqual(urllib.quote_plus('alpha+beta gamma'),
'alpha%2Bbeta+gamma')
self.assertEqual(urllib.quote_plus('alpha+beta gamma', '+'),
'alpha+beta+gamma')
class UnquotingTests(unittest.TestCase): class UnquotingTests(unittest.TestCase):
"""Tests for unquote() and unquote_plus() """Tests for unquote() and unquote_plus()

View file

@ -1110,9 +1110,12 @@ def quote(s, safe = '/'):
def quote_plus(s, safe = ''): def quote_plus(s, safe = ''):
"""Quote the query fragment of a URL; replacing ' ' with '+'""" """Quote the query fragment of a URL; replacing ' ' with '+'"""
if ' ' in s: if ' ' in s:
s = s.replace(' ', '+') l = s.split(' ')
safe += '+' for i in range(len(l)):
return quote(s, safe) l[i] = quote(l[i], safe)
return '+'.join(l)
else:
return quote(s, safe)
def urlencode(query,doseq=0): def urlencode(query,doseq=0):
"""Encode a sequence of two-element tuples or dictionary into a URL query string. """Encode a sequence of two-element tuples or dictionary into a URL query string.