def test_default_with_get_with_body_with_aws(self): request = wsgi.Request.blank('/?ContentType=JSON') request.method = 'GET' request.body = encodeutils.safe_encode('{"key": "value"}') actual = serializers.JSONRequestDeserializer().default(request) expected = {"body": {"key": "value"}} self.assertEqual(expected, actual)
def test_has_body_content_type_with_get(self): request = wsgi.Request.blank('/') request.method = 'GET' request.body = encodeutils.safe_encode('{"key": "value"}') self.assertIn('Content-Length', request.headers) obj = serializers.JSONRequestDeserializer() self.assertTrue(obj.has_body(request))
def test_has_body_has_wrong_content_type(self): request = wsgi.Request.blank('/') request.method = 'POST' request.body = encodeutils.safe_encode('{"key": "value"}') self.assertIn('Content-Length', request.headers) request.headers['Content-Type'] = 'application/xml' obj = serializers.JSONRequestDeserializer() self.assertFalse(obj.has_body(request))
def test_has_body_has_content_type_malformed(self): request = wsgi.Request.blank('/') request.method = 'POST' request.body = encodeutils.safe_encode('asdf') self.assertIn('Content-Length', request.headers) request.headers['Content-Type'] = 'application/json' obj = serializers.JSONRequestDeserializer() self.assertFalse(obj.has_body(request))
def test_has_body_has_content_length_plain_content_type(self): request = wsgi.Request.blank('/') request.method = 'POST' request.body = encodeutils.safe_encode('{"key": "value"}') self.assertIn('Content-Length', request.headers) request.headers['Content-Type'] = 'text/plain' obj = serializers.JSONRequestDeserializer() self.assertTrue(obj.has_body(request))
def __init__(self, controller): """Initializer. :param controller: object that implement methods created by routes lib """ self.controller = controller self.deserializer = serializers.JSONRequestDeserializer() self.serializer = serializers.JSONResponseSerializer()
def test_from_json_exceeds_max_json_mb(self): cfg.CONF.set_override('max_json_body_size', 10, group='senlin_api') body = jsonutils.dumps(['a'] * cfg.CONF.senlin_api.max_json_body_size) self.assertGreater(len(body), cfg.CONF.senlin_api.max_json_body_size) obj = serializers.JSONRequestDeserializer() error = self.assertRaises(exception.RequestLimitExceeded, obj.from_json, body) msg = ('Request limit exceeded: JSON body size ' '(%s bytes) exceeds maximum allowed size (%s bytes).') % ( len(body), cfg.CONF.senlin_api.max_json_body_size) self.assertEqual(msg, six.text_type(error))
def test_default_no_body(self): request = wsgi.Request.blank('/') actual = serializers.JSONRequestDeserializer().default(request) expected = {} self.assertEqual(expected, actual)
def test_from_json_malformed(self): fixture = 'kjasdklfjsklajf' self.assertRaises(webob.exc.HTTPBadRequest, serializers.JSONRequestDeserializer().from_json, fixture)
def test_from_json(self): fixture = '{"key": "value"}' expected = {"key": "value"} actual = serializers.JSONRequestDeserializer().from_json(fixture) self.assertEqual(expected, actual)
def test_no_body_no_content_length(self): request = wsgi.Request.blank('/') obj = serializers.JSONRequestDeserializer() self.assertFalse(obj.has_body(request))