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"}')
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)
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"}')
def setUp(self): self.client = JSONClient()