| | |
| | | import unittest |
| | | from pyramid.compat import ( |
| | | text_, |
| | | native_, |
| | | ) |
| | | from pyramid.compat import text_, native_ |
| | | |
| | | |
| | | class UrlEncodeTests(unittest.TestCase): |
| | | def _callFUT(self, query, doseq=False, **kw): |
| | | from pyramid.encode import urlencode |
| | | |
| | | return urlencode(query, doseq, **kw) |
| | | |
| | | def test_ascii_only(self): |
| | | result = self._callFUT([('a',1), ('b',2)]) |
| | | result = self._callFUT([('a', 1), ('b', 2)]) |
| | | self.assertEqual(result, 'a=1&b=2') |
| | | |
| | | def test_unicode_key(self): |
| | | la = text_(b'LaPe\xc3\xb1a', 'utf-8') |
| | | result = self._callFUT([(la, 1), ('b',2)]) |
| | | result = self._callFUT([(la, 1), ('b', 2)]) |
| | | self.assertEqual(result, 'LaPe%C3%B1a=1&b=2') |
| | | |
| | | def test_unicode_val_single(self): |
| | | la = text_(b'LaPe\xc3\xb1a', 'utf-8') |
| | | result = self._callFUT([('a', la), ('b',2)]) |
| | | result = self._callFUT([('a', la), ('b', 2)]) |
| | | self.assertEqual(result, 'a=LaPe%C3%B1a&b=2') |
| | | |
| | | def test_unicode_val_multiple(self): |
| | | la = [text_(b'LaPe\xc3\xb1a', 'utf-8')] * 2 |
| | | result = self._callFUT([('a', la), ('b',2)], doseq=True) |
| | | 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): |
| | |
| | | self.assertEqual(result, 'a=123+456') |
| | | |
| | | def test_dict(self): |
| | | result = self._callFUT({'a':1}) |
| | | result = self._callFUT({'a': 1}) |
| | | self.assertEqual(result, 'a=1') |
| | | |
| | | def test_None_value(self): |
| | |
| | | def test_quote_via(self): |
| | | def my_quoter(value): |
| | | return 'xxx' + value |
| | | result = self._callFUT([('a', '1'), ('b', None), ('c', None)], |
| | | quote_via=my_quoter) |
| | | |
| | | result = self._callFUT( |
| | | [('a', '1'), ('b', None), ('c', None)], quote_via=my_quoter |
| | | ) |
| | | self.assertEqual(result, 'xxxa=xxx1&xxxb=&xxxc=') |
| | | |
| | | |
| | | class URLQuoteTests(unittest.TestCase): |
| | | def _callFUT(self, val, safe=''): |
| | | from pyramid.encode import url_quote |
| | | |
| | | return url_quote(val, safe) |
| | | |
| | | def test_it_bytes(self): |
| | | la = b'La/Pe\xc3\xb1a' |
| | | result = self._callFUT(la) |
| | | self.assertEqual(result, 'La%2FPe%C3%B1a') |
| | | |
| | | |
| | | def test_it_native(self): |
| | | la = native_(b'La/Pe\xc3\xb1a', 'utf-8') |
| | | result = self._callFUT(la) |