Browse Source

Merge branch 'ThiefMaster-override-jinja-env'

pull/1275/merge
Markus Unterwaditzer 10 years ago
parent
commit
d00f5cc9fe
  1. 7
      flask/app.py
  2. 2
      flask/blueprints.py
  3. 2
      flask/wrappers.py
  4. 10
      tests/test_templating.py

7
flask/app.py

@ -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:: 1.0
jinja_env_class = Environment
#: The class that is used for the :data:`~flask.g` instance.
#:
#: Example use cases for a custom class:
@ -680,7 +685,7 @@ class Flask(_PackageBoundObject):
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,

2
flask/blueprints.py

@ -408,7 +408,7 @@ class Blueprint(_PackageBoundObject):
application-wide function of the :class:`~flask.Flask` object but
for error handlers limited to this blueprint.
.. versionadded:: 0.11
.. versionadded:: 1.0
"""
self.record_once(lambda s: s.app._register_error_handler(
self.name, code_or_exception, f))

2
flask/wrappers.py

@ -113,7 +113,7 @@ class Request(RequestBase):
is considered to include JSON data if the mimetype is
:mimetype:`application/json` or :mimetype:`application/*+json`.
.. versionadded:: 0.11
.. versionadded:: 1.0
"""
mt = self.mimetype
if mt == 'application/json':

10
tests/test_templating.py

@ -361,3 +361,13 @@ def test_template_loader_debugging(test_apps):
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)

Loading…
Cancel
Save