diff options
| author | Johan Lübcke <johan@lubcke.se> | 2019-05-24 17:15:34 +0200 |
|---|---|---|
| committer | Carlton Gibson <carlton.gibson@noumenal.es> | 2019-05-24 17:15:34 +0200 |
| commit | 0670b1b403087ec2d311321597b387ad541ea2e0 (patch) | |
| tree | 6bf7f6ec259900e7fe349ccbb09739568a4b4d3d /tests/utils_tests/test_http.py | |
| parent | 1d25354fb5f87d35968cd78b53d9560fd75f5b1a (diff) | |
Fixed #30485 -- Adjusted django.utils.http.urlencode for doseq=False case.
Diffstat (limited to 'tests/utils_tests/test_http.py')
| -rw-r--r-- | tests/utils_tests/test_http.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/tests/utils_tests/test_http.py b/tests/utils_tests/test_http.py index ec934fd2e4..fbc75c65c7 100644 --- a/tests/utils_tests/test_http.py +++ b/tests/utils_tests/test_http.py @@ -34,7 +34,20 @@ class URLEncodeTests(SimpleTestCase): ]) def test_dict_containing_sequence_not_doseq(self): - self.assertEqual(urlencode({'a': [1, 2]}, doseq=False), 'a=%5B%271%27%2C+%272%27%5D') + self.assertEqual(urlencode({'a': [1, 2]}, doseq=False), 'a=%5B1%2C+2%5D') + + def test_dict_containing_tuple_not_doseq(self): + self.assertEqual(urlencode({'a': (1, 2)}, doseq=False), 'a=%281%2C+2%29') + + def test_custom_iterable_not_doseq(self): + class IterableWithStr: + def __str__(self): + return 'custom' + + def __iter__(self): + yield from range(0, 3) + + self.assertEqual(urlencode({'a': IterableWithStr()}, doseq=False), 'a=custom') def test_dict_containing_sequence_doseq(self): self.assertEqual(urlencode({'a': [1, 2]}, doseq=True), 'a=1&a=2') @@ -61,14 +74,11 @@ class URLEncodeTests(SimpleTestCase): 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') + self.assertEqual(urlencode({'a': bytearray(range(2))}, doseq=False), 'a=bytearray%28b%27%5Cx00%5Cx01%27%29') 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') + self.assertEqual(urlencode({'a': range(2)}, doseq=True), 'a=0&a=1') + self.assertEqual(urlencode({'a': range(2)}, doseq=False), 'a=range%280%2C+2%29') def test_none(self): with self.assertRaisesMessage(TypeError, self.cannot_encode_none_msg): |
