summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Waldon <bcwaldon@gmail.com>2012-02-08 13:22:51 -0800
committerBrian Waldon <bcwaldon@gmail.com>2012-02-08 13:22:51 -0800
commit6013dd83bb96bc1f654fb8a0d7e7b29c25bfa36a (patch)
treef5ab3db47c7a5f535a5fbec822ddf6bbb7ef2a2d
parent3364905041dd133cef3512a0a3ee4a3aa161b798 (diff)
downloadkeystone-6013dd83bb96bc1f654fb8a0d7e7b29c25bfa36a.tar.gz
keystone-6013dd83bb96bc1f654fb8a0d7e7b29c25bfa36a.tar.xz
keystone-6013dd83bb96bc1f654fb8a0d7e7b29c25bfa36a.zip
Add content-type to responses
* fixes bug 928055 Change-Id: Id86a9b3361d27493ed5ef175462aa1d4c1001bf4
-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 34caec2c..b9105264 100644
--- a/keystone/common/wsgi.py
+++ b/keystone/common/wsgi.py
@@ -177,10 +177,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')