diff options
| -rw-r--r-- | pyramid/encode.py | 5 | ||||
| -rw-r--r-- | pyramid/tests/test_encode.py | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/pyramid/encode.py b/pyramid/encode.py index 127c405ed..e6c7a969b 100644 --- a/pyramid/encode.py +++ b/pyramid/encode.py @@ -41,7 +41,10 @@ def url_quote(s, safe=''): safe_map = {} for i in range(256): c = chr(i) - safe_map[c] = (c in safe) and c or ('%%%02X' % i) + if c in safe: + safe_map[c] = c + else: + safe_map[c] = '%%%02X' % i _safemaps[cachekey] = safe_map res = map(safe_map.__getitem__, s) return ''.join(res) diff --git a/pyramid/tests/test_encode.py b/pyramid/tests/test_encode.py index 8a5530f2d..741a24393 100644 --- a/pyramid/tests/test_encode.py +++ b/pyramid/tests/test_encode.py @@ -24,6 +24,11 @@ class UrlEncodeTests(unittest.TestCase): result = self._callFUT([('a', la), ('b',2)], doseq=True) self.assertEqual(result, 'a=LaPe%C3%B1a&a=LaPe%C3%B1a&b=2') + def test_int_val_multiple(self): + s = [1, 2] + result = self._callFUT([('a', s)], doseq=True) + self.assertEqual(result, 'a=1&a=2') + def test_dict(self): result = self._callFUT({'a':1}) self.assertEqual(result, 'a=1') |
