def test_multi_query_dict_support(self): query = [ ('a', '1'), ('a', '2'), ] encoded = _url_encode(query) self.assertEqual(encoded, 'a=1&a=2')
def test_strips_none(self): query = [ ('a', '1'), ('b', None), ('c', 3), ] encoded = _url_encode(query) self.assertEqual(encoded, 'a=1&c=3')
def test_encodes_numbers(self): query = [ ('a', 1), ('b', '2'), ('c', 3), ] encoded = _url_encode(query) self.assertEqual(encoded, 'a=1&b=2&c=3')
def test_encodes_tuple_list(self): query = [ ('a', '1'), ('b', '2'), ('c', '3'), ] encoded = _url_encode(query) self.assertEqual(encoded, 'a=1&b=2&c=3')
def test_encodes_dict(self): query = { 'a': '1', 'b': '2', 'c': '3', } encoded = _url_encode(query) self.assertEqual(set(['a=1', 'b=2', 'c=3']), set(encoded.split('&')))
def test_rejects_string_query(self): with self.assertRaises(ValueError) as exc: _url_encode('test') exception = exc.exception self.assertEqual(exception.message, 'need more than 1 value to unpack')
def test_encodes_unicode(self): query = {'item': u'\u2603'} expected = 'item=%E2%98%83' self.assertEqual(_url_encode(query), expected)
def test_percentencodes(self): query = {'item': '$@!'} expected = 'item=%24%40%21' self.assertEqual(_url_encode(query), expected)