Beispiel #1
0
class JSONClientTests(TestCase):
    def setUp(self):
        self.client = JSONClient()

    @mock.patch('requests.request')
    def test_get(self, request):
        response = Response()
        response.status_code = 200
        response._content = '{"foo": "bar"}'
        response.headers['Content-Type'] = 'application/json'
        request.return_value = response

        response = self.client.get(uri='http://localhost/api')

        data = response.content
        self.assertIsInstance(data, dict)
        self.assertTrue('foo' in data)
        self.assertEqual(data['foo'], 'bar')

    @mock.patch('requests.request')
    def test_incorrect_content_type(self, request):
        response = Response()
        response.status_code = 200
        response._content = '{"foo": "bar"}'
        response.headers['Content-Type'] = 'foobar'
        request.return_value = response
        response = self.client.get(uri='http://localhost/api')

        data = response.content
        self.assertIsInstance(data, str)
        self.assertEqual(data, '{"foo": "bar"}')
Beispiel #2
0
def restify(data, resource):
    """
    Turns Python objects (dict, list, etc) into Rest objects.

    :param data: Any Python object.
    :param resource: The resource this data belongs to.

    :return: Rest objects.
    """
    def rest_object(dct):
        return RestObject(dct, resource=resource)

    if isinstance(resource.client, JSONClient):
        serialize = resource.client.serialize
        deserialize = resource.client.deserialize
    else:
        serialize = JSONClient().serialize
        deserialize = JSONClient().deserialize

    json_data = serialize(data)
    return deserialize(json_data, object_hook=rest_object)
Beispiel #3
0
class JSONClientTests(TestCase):
    def setUp(self):
        self.client = JSONClient()
        
    @mock.patch('httplib2.Http.request')
    def test_get(self, request):
        request.return_value = ({'Status': 200, 'Content-Type': 'application/json'}, '{"foo": "bar"}')
        response = self.client.get(uri='http://localhost/api')
        
        data = response.content
        self.assertIsInstance(data, dict)
        self.assertTrue('foo' in data)
        self.assertEqual(data['foo'], 'bar')

    @mock.patch('httplib2.Http.request')
    def test_incorrect_content_type(self, request):
        request.return_value = ({'Status': 200, 'Content-Type': 'foobar'}, '{"foo": "bar"}')
        response = self.client.get(uri='http://localhost/api')
        
        data = response.content
        self.assertIsInstance(data, basestring)
        self.assertEqual(data, '{"foo": "bar"}')
Beispiel #4
0
 def setUp(self):
     self.client = JSONClient()
Beispiel #5
0
 def setUp(self):
     self.client = JSONClient()