Browse Source

Flask no longer internally depends on rules being added through the add_url_rule function

pull/160/head
Armin Ronacher 14 years ago
parent
commit
99be2ec022
  1. 3
      CHANGES
  2. 3
      flask/app.py
  3. 18
      tests/flask_tests.py

3
CHANGES

@ -27,6 +27,9 @@ Release date to be announced, codename to be selected
used to flip the setting of exception propagation which previously
was linked to `DEBUG` alone and is now linked to either `DEBUG` or
`TESTING`.
- Flask no longer internally depends on rules being added through the
`add_url_rule` function and can now also accept regular werkzeug
rules added to the url map.
Version 0.6.1
-------------

3
flask/app.py

@ -730,7 +730,8 @@ class Flask(_PackageBoundObject):
rule = req.url_rule
# if we provide automatic options for this URL and the
# request came with the OPTIONS method, reply automatically
if rule.provide_automatic_options and req.method == 'OPTIONS':
if getattr(rule, 'provide_automatic_options', False) \
and req.method == 'OPTIONS':
return self.make_default_options_response()
# otherwise dispatch to the handler for that endpoint
return self.view_functions[rule.endpoint](**req.view_args)

18
tests/flask_tests.py

@ -206,6 +206,24 @@ class BasicFunctionalityTestCase(unittest.TestCase):
assert rv.status_code == 405
assert sorted(rv.allow) == ['GET', 'HEAD', 'OPTIONS', 'POST']
def test_werkzeug_routing(self):
from werkzeug.routing import Submount, Rule
app = flask.Flask(__name__)
app.url_map.add(Submount('/foo', [
Rule('/bar', endpoint='bar'),
Rule('/', endpoint='index')
]))
def bar():
return 'bar'
def index():
return 'index'
app.view_functions['bar'] = bar
app.view_functions['index'] = index
c = app.test_client()
assert c.get('/foo/').data == 'index'
assert c.get('/foo/bar').data == 'bar'
def test_session(self):
app = flask.Flask(__name__)
app.secret_key = 'testkey'

Loading…
Cancel
Save