Raise exceptions if a function is overridden by a new endpoint. This fixes #570

This commit is contained in:
Armin Ronacher 2012-10-07 17:12:16 +02:00
parent e2b3f07d7c
commit 661ee54bc2
3 changed files with 23 additions and 1 deletions

View file

@ -387,7 +387,7 @@ class BasicFunctionalityTestCase(FlaskTestCase):
return ''
@app.route('/test_filters_without_returning_categories/')
def test_filters():
def test_filters2():
messages = flask.get_flashed_messages(category_filter=['message', 'warning'])
self.assert_equal(len(messages), 2)
self.assert_equal(messages[0], u'Hello World')

View file

@ -145,6 +145,23 @@ class ViewTestCase(FlaskTestCase):
self.assert_equal(rv.data, '')
self.assert_equal(rv.headers['X-Method'], 'HEAD')
def test_endpoint_override(self):
app = flask.Flask(__name__)
app.debug = True
class Index(flask.views.View):
methods = ['GET', 'POST']
def dispatch_request(self):
return flask.request.method
app.add_url_rule('/', view_func=Index.as_view('index'))
with self.assert_raises(AssertionError):
app.add_url_rule('/', view_func=Index.as_view('index'))
# But these tests should still pass. We just log a warning.
self.common_test(app)
def suite():
suite = unittest.TestSuite()