Example #1
0
class JSONSerializerTestCase(unittest.TestCase):

    def setUp(self):
        super(JSONSerializerTestCase, self).setUp()
        self.json = JSONSerializer()

    def test_serialize_invalid_data(self):
        self.assertRaises(SerializerError, self.json.serialize, object)

    def test_using_short_separators(self):
        self.json.compact = True
        data = {'objects': [1, 2, 3]}
        output = self.json.serialize(data)
        self.assertEqual(output, b'{"objects":[1,2,3]}')

    def test_using_long_separators(self):
        self.json.compact = False
        data = {'objects': [1, 2, 3]}
        output = self.json.serialize(data)
        self.assertEqual(output, b'{"objects": [1, 2, 3]}')

    def test_ensure_ascii_is_true(self):
        self.json.ensure_ascii = True
        data = {"last_name": u"王"}
        output = self.json.serialize(data)
        self.assertEqual(output, b'{"last_name": "\\u738b"}')

    def test_ensure_ascii_is_false(self):
        self.json.ensure_ascii = False
        data = {"last_name": u"王"}
        output = self.json.serialize(data)
        self.assertEqual(output, b'{"last_name": "\xe7\x8e\x8b"}')

    def test_bad_unicode_symbols(self):
        data = ["\u2028", "\u2029"]
        output = self.json.serialize(data)
        self.assertEqual(output, b'["\\u2028", "\\u2029"]')
Example #2
0
    def process_request(self, request):
        """Handle received request from user.

        :param request: request from user.
        """
        logger.info("\"{method} {url}\" args={args}".format(
            method=request.method,
            url=request.url,
            args=request.args)
        )
        response = Response()

        try:
            url = self.extract_url(request)
            handler, args, kwargs = self.search_handler(request, url)

            # invoke handler for request
            if handler:

                for middleware in self.middlewares:
                    middleware.process_request(request, handler)

                # search serializer for response
                format = request.get_argument('format')
                serializer = handler.get_serializer(format, *args, **kwargs)

                response.content = handler.dispatch(request, *args, **kwargs)
                response.append_request(request)
            else:
                raise NotSpecifiedHandler()
        except BaseAPIException as exc:
            logger.exception(exc)
            response.wrap_exception(exc)
            serializer = JSONSerializer()

        return serializer.serialize(response.content)
Example #3
0
 def setUp(self):
     super(JSONSerializerTestCase, self).setUp()
     self.json = JSONSerializer()