Beispiel #1
0
    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')
Beispiel #2
0
 def head(self, path, data=None, secure=False, **extra):
     """Construct a HEAD request."""
     data = {} if data is None else data
     return self.generic('HEAD', path, secure=secure, **{
         'QUERY_STRING': urlencode(data, doseq=True),
         **extra,
     })
Beispiel #3
0
 def test_multivaluedict(self):
     result = urlencode(MultiValueDict({
         'name': ['Adrian', 'Simon'],
         'position': ['Developer'],
     }),
                        doseq=True)
     # MultiValueDicts are similarly unordered.
     self.assertIn(result, [
         'name=Adrian&name=Simon&position=Developer',
         'position=Developer&name=Adrian&name=Simon',
     ])
Beispiel #4
0
 def test_dict(self):
     result = urlencode({'a': 1, 'b': 2, 'c': 3})
     # Dictionaries are treated as unordered.
     self.assertIn(result, [
         'a=1&b=2&c=3',
         'a=1&c=3&b=2',
         'b=2&a=1&c=3',
         'b=2&c=3&a=1',
         'c=3&a=1&b=2',
         'c=3&b=2&a=1',
     ])
Beispiel #5
0
 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')
Beispiel #6
0
 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')
Beispiel #7
0
 def test_dict_with_bytes_values(self):
     self.assertEqual(urlencode({'a': b'abc'}, doseq=True), 'a=abc')
Beispiel #8
0
 def test_dict_containing_empty_sequence_doseq(self):
     self.assertEqual(urlencode({'a': []}, doseq=True), '')
Beispiel #9
0
 def test_dict_containing_sequence_doseq(self):
     self.assertEqual(urlencode({'a': [1, 2]}, doseq=True), 'a=1&a=2')
Beispiel #10
0
 def test_dict_containing_sequence_not_doseq(self):
     self.assertEqual(urlencode({'a': [1, 2]}, doseq=False),
                      'a=%5B%271%27%2C+%272%27%5D')
Beispiel #11
0
 def test_tuples(self):
     self.assertEqual(urlencode((('a', 1), ('b', 2), ('c', 3))),
                      'a=1&b=2&c=3')