Browse files

Merge pull request #497 from ekoka/master

fix for #494
  • Loading branch information...
2 parents 24e0131 + 12dcba8 commit a9e753f7064e38e40819b49a51491e681dd0f42c @mitsuhiko mitsuhiko committed Jun 17, 2012
Showing with 24 additions and 1 deletion.
  1. +1 −1 flask/app.py
  2. +23 −0 flask/testsuite/basic.py
View
2 flask/app.py
@@ -1490,7 +1490,7 @@ def inject_url_defaults(self, endpoint, values):
"""
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)
View
23 flask/testsuite/basic.py
@@ -953,6 +953,29 @@ def something_else():
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__)

0 comments on commit a9e753f

Please sign in to comment.