Merge pull request #497 from ekoka/master
fix for https://github.com/mitsuhiko/flask/issues/494
This commit is contained in:
commit
a9e753f706
2 changed files with 24 additions and 1 deletions
|
|
@ -1490,7 +1490,7 @@ class Flask(_PackageBoundObject):
|
|||
"""
|
||||
funcs = self.url_default_functions.get(None, ())
|
||||
if '.' in endpoint:
|
||||
bp = endpoint.split('.', 1)[0]
|
||||
bp = endpoint.rsplit('.', 1)[0]
|
||||
funcs = chain(funcs, self.url_default_functions.get(bp, ()))
|
||||
for func in funcs:
|
||||
func(endpoint, values)
|
||||
|
|
|
|||
|
|
@ -953,6 +953,29 @@ class BasicFunctionalityTestCase(FlaskTestCase):
|
|||
self.assert_equal(c.get('/de/').data, '/de/about')
|
||||
self.assert_equal(c.get('/de/about').data, '/foo')
|
||||
self.assert_equal(c.get('/foo').data, '/en/about')
|
||||
|
||||
def test_inject_blueprint_url_defaults(self):
|
||||
app = flask.Flask(__name__)
|
||||
bp = flask.Blueprint('foo.bar.baz', __name__,
|
||||
template_folder='template')
|
||||
|
||||
@bp.url_defaults
|
||||
def bp_defaults(endpoint, values):
|
||||
values['page'] = 'login'
|
||||
@bp.route('/<page>')
|
||||
def view(page): pass
|
||||
|
||||
app.register_blueprint(bp)
|
||||
|
||||
values = dict()
|
||||
app.inject_url_defaults('foo.bar.baz.view', values)
|
||||
expected = dict(page='login')
|
||||
self.assert_equal(values, expected)
|
||||
|
||||
with app.test_request_context('/somepage'):
|
||||
url = flask.url_for('foo.bar.baz.view')
|
||||
expected = '/login'
|
||||
self.assert_equal(url, expected)
|
||||
|
||||
def test_debug_mode_complains_after_first_request(self):
|
||||
app = flask.Flask(__name__)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue