Browse Source

Fix #815

pull/816/head
Markus Unterwaditzer 12 years ago
parent
commit
af5a0853bf
  1. 3
      flask/app.py
  2. 7
      flask/testsuite/basic.py

3
flask/app.py

@ -949,6 +949,9 @@ class Flask(_PackageBoundObject):
# a tuple of only `GET` as default.
if methods is None:
methods = getattr(view_func, 'methods', None) or ('GET',)
if isinstance(methods, string_types):
raise TypeError('Allowed methods have to be iterables of strings, '
'for example: @app.route(..., methods=["POST"])')
methods = set(methods)
# Methods that should always be added

7
flask/testsuite/basic.py

@ -85,6 +85,13 @@ class BasicFunctionalityTestCase(FlaskTestCase):
self.assert_equal(rv.status_code, 405)
self.assert_equal(sorted(rv.allow), ['GET', 'HEAD', 'OPTIONS', 'POST'])
def test_disallow_string_for_allowed_methods(self):
app = flask.Flask(__name__)
with self.assert_raises(TypeError):
@app.route('/', methods='GET POST')
def index():
return "Hey"
def test_url_mapping(self):
app = flask.Flask(__name__)
def index():

Loading…
Cancel
Save