Skip to content

Commit

Permalink
Allow custom jinja environments
Browse files Browse the repository at this point in the history
This is useful e.g. when using the new Jinja Environment
attributes added in mitsuhiko/jinja#404
  • Loading branch information
ThiefMaster committed Apr 6, 2015
1 parent dac45f6 commit 7d5bde9
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
7 changes: 6 additions & 1 deletion flask/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,11 @@ class Flask(_PackageBoundObject):
#: :class:`~flask.Response` for more information.
response_class = Response

#: The class that is used for the Jinja environment.
#:
#: .. versionadded:: 0.11
jinja_env_class = Environment

#: The class that is used for the :data:`~flask.g` instance.
#:
#: Example use cases for a custom class:
Expand Down Expand Up @@ -680,7 +685,7 @@ def create_jinja_environment(self):
options['auto_reload'] = self.config['TEMPLATES_AUTO_RELOAD']
else:
options['auto_reload'] = self.debug
rv = Environment(self, **options)
rv = self.jinja_env_class(self, **options)
rv.globals.update(
url_for=url_for,
get_flashed_messages=get_flashed_messages,
Expand Down
10 changes: 10 additions & 0 deletions tests/test_templating.py
Original file line number Diff line number Diff line change
Expand Up @@ -361,3 +361,13 @@ def handle(x, record):
app.config['EXPLAIN_TEMPLATE_LOADING'] = old_load_setting

assert len(called) == 1

def test_custom_jinja_env():
class CustomEnvironment(flask.templating.Environment):
pass

class CustomFlask(flask.Flask):
jinja_env_class = CustomEnvironment

app = CustomFlask(__name__)
assert isinstance(app.jinja_env, CustomEnvironment)

0 comments on commit 7d5bde9

Please sign in to comment.