diff options
| author | François Freitag <mail+github@franek.fr> | 2017-10-09 13:20:01 -0700 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-10-12 09:08:33 -0400 |
| commit | 41be85862d9067a809ccf3707d2a22dfef23d99a (patch) | |
| tree | 979b1e01378ab1a38fa8f00718a804e59a640522 /tests/utils_tests | |
| parent | 4d60261b2a77460b4c127c3d832518b95e11a0ac (diff) | |
Fixed #28679 -- Fixed urlencode()'s handling of bytes.
Regression in fee42fd99ee470528858c2ccb3621135c30ec262.
Thanks Claude Paroz, Jon Dufresne, and Tim Graham for the guidance.
Diffstat (limited to 'tests/utils_tests')
| -rw-r--r-- | tests/utils_tests/test_http.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/utils_tests/test_http.py b/tests/utils_tests/test_http.py index a7a670c85b..41bda81967 100644 --- a/tests/utils_tests/test_http.py +++ b/tests/utils_tests/test_http.py @@ -47,6 +47,23 @@ class URLEncodeTests(unittest.TestCase): 'position=Developer&name=Adrian&name=Simon', ]) + def test_dict_with_bytes_values(self): + self.assertEqual(urlencode({'a': b'abc'}, doseq=True), 'a=abc') + + def test_dict_with_sequence_of_bytes(self): + self.assertEqual(urlencode({'a': [b'spam', b'eggs', b'bacon']}, doseq=True), 'a=spam&a=eggs&a=bacon') + + def test_dict_with_bytearray(self): + self.assertEqual(urlencode({'a': bytearray(range(2))}, doseq=True), 'a=0&a=1') + self.assertEqual(urlencode({'a': bytearray(range(2))}, doseq=False), 'a=%5B%270%27%2C+%271%27%5D') + + def test_generator(self): + def gen(): + yield from range(2) + + self.assertEqual(urlencode({'a': gen()}, doseq=True), 'a=0&a=1') + self.assertEqual(urlencode({'a': gen()}, doseq=False), 'a=%5B%270%27%2C+%271%27%5D') + class Base36IntTests(SimpleTestCase): def test_roundtrip(self): |
