Fixed a bug in list_templates

This commit is contained in:
Armin Ronacher 2011-07-16 01:16:03 +02:00
parent 8d2daea327
commit c9a2ad2b8d
6 changed files with 23 additions and 5 deletions

View file

@ -15,6 +15,14 @@ Relase date to be decided, codename to be chosen.
- View functions can now opt out of getting the automatic
OPTIONS implementation.
Version 0.7.3
-------------
Bugfix release, release date to be decided
- Fixed the Jinja2 environment's list_templates method not returning the
correct names when blueprints or modules were involved.
Version 0.7.2
-------------

View file

@ -78,6 +78,8 @@ class DispatchingJinjaLoader(BaseLoader):
pass
for blueprint in self.app.blueprints.itervalues():
if blueprint_is_module(blueprint):
continue
loader = blueprint.jinja_loader
if loader is not None:
yield loader, template
@ -93,7 +95,7 @@ class DispatchingJinjaLoader(BaseLoader):
if loader is not None:
for template in loader.list_templates():
prefix = ''
if not blueprint_is_module(blueprint):
if blueprint_is_module(blueprint):
prefix = name + '/'
result.add(prefix + template)

View file

@ -1,7 +1,7 @@
from flask import Flask
app = Flask(__name__)
from moduleapp.apps.admin import admin
from moduleapp.apps.frontend import frontend
from blueprintapp.apps.admin import admin
from blueprintapp.apps.frontend import frontend
app.register_blueprint(admin)
app.register_blueprint(frontend)

View file

@ -1,6 +1,8 @@
from flask import Blueprint, render_template
admin = Blueprint(__name__, url_prefix='/admin')
admin = Blueprint('admin', __name__, url_prefix='/admin',
template_folder='templates',
static_folder='static')
@admin.route('/')

View file

@ -1,6 +1,6 @@
from flask import Blueprint, render_template
frontend = Blueprint(__name__)
frontend = Blueprint('frontend', __name__, template_folder='templates')
@frontend.route('/')

View file

@ -1414,6 +1414,12 @@ class BlueprintTestCase(unittest.TestCase):
with flask.Flask(__name__).test_request_context():
assert flask.render_template('nested/nested.txt') == 'I\'m nested'
def test_templates_list(self):
from blueprintapp import app
templates = sorted(app.jinja_env.list_templates())
self.assertEqual(templates, ['admin/index.html',
'frontend/index.html'])
def test_dotted_names(self):
frontend = flask.Blueprint('myapp.frontend', __name__)
backend = flask.Blueprint('myapp.backend', __name__)