From 85875928014da44175f6acd0a1954bf02c560e80 Mon Sep 17 00:00:00 2001 From: Denis Makogon Date: Wed, 7 Mar 2018 12:06:30 +0200 Subject: [PATCH] Do not attempt to jsonify response data it's up to a user to turn his response to the string --- fdk/response.py | 6 +++--- fdk/tests/test_json.py | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/fdk/response.py b/fdk/response.py index b0cd359..33bbaac 100644 --- a/fdk/response.py +++ b/fdk/response.py @@ -26,14 +26,14 @@ def __init__(self, response_data=None, headers=None, status_code=200): """ JSON response object :param response_data: JSON response data (dict, str) - :type response_data: object + :type response_data: str :param headers: JSON response HTTP headers :type headers: fdk.headers.GoLikeHeaders :param status_code: JSON response HTTP status code :type status_code: int """ self.status_code = status_code - self.response_data = ujson.dumps(response_data) + self.response_data = response_data if response_data else "" self.headers = hrs.GoLikeHeaders({}) if isinstance(headers, dict): self.headers = hrs.GoLikeHeaders(headers) @@ -79,7 +79,7 @@ def __init__(self, context, response_data=None, :param context: request context :type context: fdk.context.RequestContext :param response_data: response data - :type response_data: object + :type response_data: str :param headers: response headers :param status_code: status code :type status_code: int diff --git a/fdk/tests/test_json.py b/fdk/tests/test_json.py index bdd424e..a9c1e69 100644 --- a/fdk/tests/test_json.py +++ b/fdk/tests/test_json.py @@ -42,6 +42,10 @@ async def coroutine_func(ctx, data=None, loop=None): return "OK" +def none_func(ctx, data=None, loop=None): + return + + class TestJSONRequestParser(testtools.TestCase): def setUp(self): @@ -96,3 +100,10 @@ def test_corotuine_func_multiple(self): self.assertIsNotNone(r) self.assertEqual(200, r.status()) self.assertIn("OK", r.body()) + + def test_none_func(self): + in_bytes = data.raw_request_without_body.encode('utf8') + r = runner.handle_request(none_func, in_bytes) + self.assertIsNotNone(r) + self.assertEqual(200, r.status()) + self.assertIn("", r.body())