Warn on None responses.
This commit is contained in:
parent
dc3f13df54
commit
a862ead5f2
2 changed files with 20 additions and 1 deletions
7
flask.py
7
flask.py
|
|
@ -687,7 +687,7 @@ class Flask(object):
|
|||
"""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
|
||||
|
|
@ -703,6 +703,11 @@ class Flask(object):
|
|||
|
||||
: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):
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import sys
|
|||
import flask
|
||||
import unittest
|
||||
import tempfile
|
||||
import warnings
|
||||
|
||||
|
||||
example_path = os.path.join(os.path.dirname(__file__), '..', 'examples')
|
||||
|
|
@ -224,6 +225,19 @@ class BasicFunctionalityTestCase(unittest.TestCase):
|
|||
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):
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue