summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-02-08 22:25:35 +0000
committerGerrit Code Review <review@openstack.org>2012-02-08 22:25:35 +0000
commit738e2ec8e4244fbe2c032145fca5889799ecf8a4 (patch)
tree853ed994ae2e6c71a869fa6fb3d4420db37fe159
parent2cc97c19fb242128d760554324136cb6b500f479 (diff)
parent6013dd83bb96bc1f654fb8a0d7e7b29c25bfa36a (diff)
downloadkeystone-738e2ec8e4244fbe2c032145fca5889799ecf8a4.tar.gz
keystone-738e2ec8e4244fbe2c032145fca5889799ecf8a4.tar.xz
keystone-738e2ec8e4244fbe2c032145fca5889799ecf8a4.zip
Merge "Add content-type to responses" into redux
-rw-r--r--keystone/common/wsgi.py9
-rw-r--r--tests/test_wsgi.py25
2 files changed, 31 insertions, 3 deletions
diff --git a/keystone/common/wsgi.py b/keystone/common/wsgi.py
index c52df414..59b49de2 100644
--- a/keystone/common/wsgi.py
+++ b/keystone/common/wsgi.py
@@ -180,10 +180,13 @@ class Application(BaseApplication):
elif isinstance(result, webob.exc.WSGIHTTPException):
return result
- return self._serialize(result)
+ response = webob.Response()
+ self._serialize(response, result)
+ return response
- def _serialize(self, result):
- return json.dumps(result, cls=utils.SmarterEncoder)
+ def _serialize(self, response, result):
+ response.content_type = 'application/json'
+ response.body = json.dumps(result, cls=utils.SmarterEncoder)
def _normalize_arg(self, arg):
return str(arg).replace(':', '_').replace('-', '_')
diff --git a/tests/test_wsgi.py b/tests/test_wsgi.py
new file mode 100644
index 00000000..cf329ba7
--- /dev/null
+++ b/tests/test_wsgi.py
@@ -0,0 +1,25 @@
+import webob
+
+from keystone import test
+from keystone.common import wsgi
+
+
+class FakeApp(wsgi.Application):
+ def index(self, context):
+ return {'a': 'b'}
+
+
+class ApplicationTest(test.TestCase):
+ def setUp(self):
+ self.app = FakeApp()
+
+ def _make_request(self):
+ req = webob.Request.blank('/')
+ args = {'action': 'index', 'controller': self.app}
+ req.environ['wsgiorg.routing_args'] = [None, args]
+ return req
+
+ def test_response_content_type(self):
+ req = self._make_request()
+ resp = req.get_response(self.app)
+ self.assertEqual(resp.content_type, 'application/json')