예제 #1
0
 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)
예제 #2
0
 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))
예제 #3
0
 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))
예제 #4
0
 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))
예제 #5
0
 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))
예제 #6
0
파일: wsgi.py 프로젝트: zhaihaifei/senlin
    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()
예제 #7
0
 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))
예제 #8
0
 def test_default_no_body(self):
     request = wsgi.Request.blank('/')
     actual = serializers.JSONRequestDeserializer().default(request)
     expected = {}
     self.assertEqual(expected, actual)
예제 #9
0
 def test_from_json_malformed(self):
     fixture = 'kjasdklfjsklajf'
     self.assertRaises(webob.exc.HTTPBadRequest,
                       serializers.JSONRequestDeserializer().from_json,
                       fixture)
예제 #10
0
 def test_from_json(self):
     fixture = '{"key": "value"}'
     expected = {"key": "value"}
     actual = serializers.JSONRequestDeserializer().from_json(fixture)
     self.assertEqual(expected, actual)
예제 #11
0
 def test_no_body_no_content_length(self):
     request = wsgi.Request.blank('/')
     obj = serializers.JSONRequestDeserializer()
     self.assertFalse(obj.has_body(request))