示例#1
0
 def test_default_with_body(self):
     request = wsgi.Request.blank('/')
     request.method = 'POST'
     request.body = b'{"key": "value"}'
     actual = wsgi.JSONRequestDeserializer().default(request)
     expected = {"body": {"key": "value"}}
     self.assertEqual(expected, actual)
示例#2
0
    def _check_transfer_encoding(self,
                                 transfer_encoding=None,
                                 content_length=None):
        request = wsgi.Request.blank('/')
        request.method = 'POST'
        request.body = b'fake_body'
        request.headers['transfer-encoding'] = transfer_encoding
        if content_length is not None:
            request.headers['content-length'] = content_length

        return wsgi.JSONRequestDeserializer().has_body(request)
示例#3
0
    def test_resource_call_error_handle_localized(self,
                                                  mock_translate_exception):
        class Controller(object):
            def delete(self, req, identity):
                raise webob.exc.HTTPBadRequest(explanation='Not Found')

        actions = {'action': 'delete', 'identity': 12}
        env = {'wsgiorg.routing_args': [None, actions]}
        request = wsgi.Request.blank('/tests/123', environ=env)
        message_es = 'No Encontrado'

        resource = wsgi.Resource(Controller(), wsgi.JSONRequestDeserializer(),
                                 None)
        translated_exc = webob.exc.HTTPBadRequest(message_es)
        mock_translate_exception.return_value = translated_exc

        e = self.assertRaises(webob.exc.HTTPBadRequest, resource, request)
        self.assertEqual(message_es, str(e))
示例#4
0
def create_resource():
    """Image members resource factory method"""
    deserializer = wsgi.JSONRequestDeserializer()
    serializer = wsgi.JSONResponseSerializer()
    return wsgi.Resource(Controller(), deserializer, serializer)
示例#5
0
 def test_default_no_body(self):
     request = wsgi.Request.blank('/')
     actual = wsgi.JSONRequestDeserializer().default(request)
     expected = {}
     self.assertEqual(expected, actual)
示例#6
0
 def test_from_json_malformed(self):
     fixture = 'kjasdklfjsklajf'
     self.assertRaises(webob.exc.HTTPBadRequest,
                       wsgi.JSONRequestDeserializer().from_json, fixture)
示例#7
0
 def test_from_json(self):
     fixture = '{"key": "value"}'
     expected = {"key": "value"}
     actual = wsgi.JSONRequestDeserializer().from_json(fixture)
     self.assertEqual(expected, actual)
示例#8
0
 def test_no_body_no_content_length(self):
     request = wsgi.Request.blank('/')
     self.assertFalse(wsgi.JSONRequestDeserializer().has_body(request))
示例#9
0
 def test_has_body_has_content_length(self):
     request = wsgi.Request.blank('/')
     request.method = 'POST'
     request.body = b'asdf'
     self.assertIn('Content-Length', request.headers)
     self.assertTrue(wsgi.JSONRequestDeserializer().has_body(request))
示例#10
0
 def test_has_body_zero_content_length(self):
     request = wsgi.Request.blank('/')
     request.method = 'POST'
     request.body = b'asdf'
     request.headers['Content-Length'] = 0
     self.assertFalse(wsgi.JSONRequestDeserializer().has_body(request))