Remove webob from render_to_response
authorSebastian Spaeth <Sebastian@SSpaeth.de>
Fri, 16 Nov 2012 09:25:50 +0000 (10:25 +0100)
committerSebastian Spaeth <Sebastian@SSpaeth.de>
Fri, 21 Dec 2012 07:10:48 +0000 (08:10 +0100)
We were still using webob's Response objects for template rendering.
Transition to werkzeug's Response object. One caveat was that it
seemed to have used the default mimetype "text/plain" for all pages,
so we override the default Response class, setting the default mime
type to "text/html".

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
mediagoblin/app.py
mediagoblin/tools/response.py

index 876ded4ef2f35d3a3d5b028f3321923ce9cbc75c..8bd2496f9d1d11d0ab3c5f49b53a0ff4017a80df 100644 (file)
@@ -193,7 +193,8 @@ class MediaGoblinApp(object):
         except NotFound as exc:
             return render_404(request)(environ, start_response)
         except HTTPException as exc:
-            # Support legacy webob.exc responses
+            # exceptions that match() is documented to return:
+            # MethodNotAllowed, RequestRedirect TODO: need to handle ???
             return exc(environ, start_response)
 
         view_func = view_functions[endpoint]
index ed23f0f7cbac04bd4bd68c37030f6b980de1e2f7..b02dd6b55208d7485ae6c2a2f422b4bccea7ceef 100644 (file)
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 import werkzeug.utils
-from webob import Response
+from werkzeug.wrappers import Response as wz_Response
 from mediagoblin.tools.template import render_template
 from mediagoblin.tools.translate import (lazy_pass_to_ugettext as _,
                                          pass_to_ugettext)
 
+class Response(wz_Response):
+    """Set default response mimetype to HTML, otherwise we get text/plain"""
+    default_mimetype = u'text/html'
+
 
 def render_to_response(request, template, context, status=200):
     """Much like Django's shortcut.render()"""