diff options
Diffstat (limited to 'service')
-rw-r--r-- | service/pixelated/resources/__init__.py | 4 | ||||
-rw-r--r-- | service/test/unit/resources/test_helpers.py | 30 |
2 files changed, 32 insertions, 2 deletions
diff --git a/service/pixelated/resources/__init__.py b/service/pixelated/resources/__init__.py index 9ccca7ee..cd27fab0 100644 --- a/service/pixelated/resources/__init__.py +++ b/service/pixelated/resources/__init__.py @@ -36,14 +36,14 @@ class SetEncoder(json.JSONEncoder): def respond_json(entity, request, status_code=200): json_response = json.dumps(entity, cls=SetEncoder) - request.responseHeaders.addRawHeader(b"content-type", [b"application/json"]) + request.responseHeaders.setRawHeaders(b"content-type", [b"application/json"]) request.code = status_code return json_response def respond_json_deferred(entity, request, status_code=200): json_response = json.dumps(entity, cls=SetEncoder) - request.responseHeaders.addRawHeader(b"content-type", [b"application/json"]) + request.responseHeaders.setRawHeaders(b"content-type", [b"application/json"]) request.code = status_code request.write(json_response) request.finish() diff --git a/service/test/unit/resources/test_helpers.py b/service/test/unit/resources/test_helpers.py new file mode 100644 index 00000000..a17ce755 --- /dev/null +++ b/service/test/unit/resources/test_helpers.py @@ -0,0 +1,30 @@ +import unittest +import re + +from pixelated.resources import respond_json, respond_json_deferred +from test.unit.resources import DummySite +from twisted.web.test.requesthelper import DummyRequest + + +class TestHelpers(unittest.TestCase): + + def setUp(self): + pass + + def test_respond_json_should_populate_response(self): + request = DummyRequest(['']) + body = respond_json({"test": "yep"}, request) + + self.assertEqual(200, request.code) + self.assertEqual(b"{\"test\": \"yep\"}", body) + self.assertEqual([b"application/json"], + request.responseHeaders.getRawHeaders("Content-Type")) + + def test_respond_json_deferred_should_populate_response(self): + request = DummyRequest(['']) + body = respond_json_deferred({"test": "yep"}, request) + + self.assertEqual(200, request.code) + self.assertEqual(b"{\"test\": \"yep\"}", request.written[0]) + self.assertEqual([b"application/json"], + request.responseHeaders.getRawHeaders("Content-Type")) |