Beispiel #1
0
    def test_flatten(self):
        s = http.serialize_flatten('p1', ['v1', 'v2', 'v3'])
        self.assertEqual(s, (('p1[]', 'v1'), ('p1[]', 'v2'), ('p1[]', 'v3')))

        s = http.serialize_flatten('p1', [{'k1': 'v1', 'k2': True},
                                          {'k1': 'v2', 'k2': False}])
        # can't predict the order in which the dictionaries be processed, so
        # just make sure all the tuples are in place
        self.assertEquals(len(s), 4)
        self.assertEquals(tuple(sorted(s[:2])),
                          (('p1[][k1]', 'v1'), ('p1[][k2]', 'true')))
        self.assertEquals(tuple(sorted(s[2:])),
                          (('p1[][k1]', 'v2'), ('p1[][k2]', 'false')))
Beispiel #2
0
    def test_flatten(self):
        s = http.serialize_flatten('p1', ['v1', 'v2', 'v3'])
        self.assertEqual(s,
                         (('p1[0]', 'v1'), ('p1[1]', 'v2'), ('p1[2]', 'v3')))

        s = http.serialize_flatten('p1', ['v1', 'v2', 'v3'], False)
        self.assertEqual(s, (('p1[]', 'v1'), ('p1[]', 'v2'), ('p1[]', 'v3')))

        s = http.serialize_flatten('p1', [{
            'k1': 'v1',
            'k2': True
        }, {
            'k1': 'v2',
            'k2': False
        }])
        # can't predict the order in which the dictionaries be processed, so
        # just make sure all the tuples are in place
        self.assertEquals(len(s), 4)
        self.assertEquals(tuple(sorted(s[:2])),
                          (('p1[0][k1]', 'v1'), ('p1[0][k2]', 'true')))
        self.assertEquals(tuple(sorted(s[2:])),
                          (('p1[1][k1]', 'v2'), ('p1[1][k2]', 'false')))
Beispiel #3
0
    def method_call(self, params):
        # a trick - get the method name from the stack frame preceding the
        # current one
        method = inspect.stack()[1][3]

        # serialize the parameters
        serialized = ()
        for name, value in params.items():
            if name == 'self':
                continue
            if value is None:
                continue
            serialized += http.serialize_flatten(name, value)

        request = http.Request('POST', self.get_url(method), serialized)
        return request, parsers.parse_json
Beispiel #4
0
    def method_call(self, params):
        # a trick - get the method name from the stack frame preceding the
        # current one
        method = inspect.stack()[1][3]

        # serialize the parameters
        serialized = ()
        for name, value in params.items():
            if name == 'self':
                continue
            if value is None:
                continue
            serialized += http.serialize_flatten(name, value)

        request = http.Request('POST', self.get_url(method), serialized)
        return request, parsers.parse_json
Beispiel #5
0
 def serialize_flatten(self, request):
     # use serialize_flatten to flatten params
     serialized = ()
     for name, value in request.params.items():
         serialized += http.serialize_flatten(name, value, False)
     request.params = serialized
Beispiel #6
0
 def serialize_flatten(self, request):
     # use serialize_flatten to flatten params
     serialized = ()
     for name, value in request.params.items():
         serialized += http.serialize_flatten(name, value, False)
     request.params = serialized