summaryrefslogtreecommitdiff
path: root/tests/utils_tests/test_http.py
diff options
context:
space:
mode:
authorFrançois Freitag <mail+github@franek.fr>2017-10-09 13:20:01 -0700
committerTim Graham <timograham@gmail.com>2017-10-12 09:08:33 -0400
commit41be85862d9067a809ccf3707d2a22dfef23d99a (patch)
tree979b1e01378ab1a38fa8f00718a804e59a640522 /tests/utils_tests/test_http.py
parent4d60261b2a77460b4c127c3d832518b95e11a0ac (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/test_http.py')
-rw-r--r--tests/utils_tests/test_http.py17
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):