Ejemplo n.º 1
0
    def test_encode_query_string_uuid(self):

        obj = {'a': UUID('7da81f83-a656-42f1-aeb3-ab207809fb0e')}
        query_string = 'a=7da81f83-a656-42f1-aeb3-ab207809fb0e'
        self.assertEqual(encode_query_string(obj), query_string)
Ejemplo n.º 2
0
    def test_encode_query_string_null(self):

        obj = {'a': None}
        query_string = 'a=null'
        self.assertEqual(encode_query_string(obj), query_string)
Ejemplo n.º 3
0
    def test_encode_query_string_datetime(self): # pylint: disable=invalid-name

        obj = {'a': datetime(2013, 7, 18, 12, 31, tzinfo=TZUTC)}
        query_string = 'a=2013-07-18T12%3A31%3A00%2B00%3A00'
        self.assertEqual(encode_query_string(obj), query_string)
Ejemplo n.º 4
0
    def test_encode_query_string_date(self):

        obj = {'a': date(2013, 7, 18)}
        query_string = 'a=2013-07-18'
        self.assertEqual(encode_query_string(obj), query_string)
Ejemplo n.º 5
0
    def test_encode_query_string_bool(self):

        obj = {'a': True}
        query_string = 'a=true'
        self.assertEqual(encode_query_string(obj), query_string)
Ejemplo n.º 6
0
    def test_encode_query_string(self):

        # Complex dict
        obj = {'a': 7, '_a': '7', 'b': {'c': '+x y + z', 'd': [2, -4, 6]}}
        query_string = '_a=7&a=7&b.c=%2Bx%20y%20%2B%20z&b.d.0=2&b.d.1=-4&b.d.2=6'
        self.assertEqual(encode_query_string(obj), query_string)

        # List of dicts
        obj = {'foo': [{'bar': '17', 'thud': 'blue'}, {'boo': 'bear'}]}
        query_string = 'foo.0.bar=17&foo.0.thud=blue&foo.1.boo=bear'
        self.assertEqual(encode_query_string(obj), query_string)

        # Top-level array
        obj = [1, 2, 3] # pylint: disable=redefined-variable-type
        query_string = '0=1&1=2&2=3'
        self.assertEqual(encode_query_string(obj), query_string)

        # Empty dict
        obj = {}
        query_string = ''
        self.assertEqual(encode_query_string(obj), query_string)

        # Empty array
        obj = []
        query_string = ''
        self.assertEqual(encode_query_string(obj), query_string)

        # Empty dict/dict
        obj = {'foo': {}}
        query_string = 'foo='
        self.assertEqual(encode_query_string(obj), query_string)

        # Empty dict/array
        obj = {'foo': []}
        query_string = 'foo='
        self.assertEqual(encode_query_string(obj), query_string)

        # Empty array/array
        obj = [[]]
        query_string = '0='
        self.assertEqual(encode_query_string(obj), query_string)

        # Empty array/dict
        obj = [{}]
        query_string = '0='
        self.assertEqual(encode_query_string(obj), query_string)

        # Keys and values with special characters
        obj = {'a&b=c.d': 'a&b=c.d'}
        query_string = 'a%26b%3Dc.d=a%26b%3Dc.d'
        self.assertEqual(encode_query_string(obj), query_string)

        # Unicode keys and values
        obj = {'a': 'abc' + chr(40960), 'b': ['c', 'd']}
        query_string = 'a=abc%EA%80%80&b.0=c&b.1=d'
        self.assertEqual(encode_query_string(obj), query_string)
Ejemplo n.º 7
0
    def test_encode_query_string_datetime_naive(self): # pylint: disable=invalid-name

        obj = {'a': datetime(2013, 7, 18, 12, 31)}
        query_string = 'a=' + quote(obj['a'].replace(tzinfo=TZLOCAL).isoformat(), encoding='utf-8')
        self.assertEqual(encode_query_string(obj), query_string)