Armin Ronacher  committed 0ed8627

Warn on None responses.

  • Participants
  • Parent commits b99362c

Comments (0)

Files changed (2)

         """Converts the return value from a view function to a real
         response object that is an instance of :attr:`response_class`.
-        The following types are allowd for `rv`:
+        The following types are allowed for `rv`:
         ======================= ===========================================
         :attr:`response_class`  the object is returned unchanged
         :param rv: the return value from the view function
+        if rv is None:
+            from warnings import warn
+            warn(Warning('View function did not return a response'),
+                 stacklevel=2)
+            return u''
         if isinstance(rv, self.response_class):
             return rv
         if isinstance(rv, basestring):

File tests/

 import flask
 import unittest
 import tempfile
+import warnings
 example_path = os.path.join(os.path.dirname(__file__), '..', 'examples')
             assert flask.url_for('static', filename='index.html') \
                 == '/static/index.html'
+    def test_none_response(self):
+        warnings.filterwarnings('error', 'View function did not return')
+        app = flask.Flask(__name__)
+        @app.route('/')
+        def test():
+            return None
+        try:
+            app.test_client().get('/')
+        except Warning:
+            pass
+        else:
+            assert "Expected warning"
 class JSONTestCase(unittest.TestCase):