Testing the template_context_prerender hook
This allows for modifying any context *right before render*, including access to the variables that are passed in. This test takes advantage of that and takes one of the variables, "doubleme", and modifies it (doubles it!) In our case it turns "happy" and "joy" into "happyhappy" and "joyjoy". This commit sponsored by Mark Holmquist. Thank you!
This commit is contained in:
parent
38ebd05d1a
commit
a1099bba79
@ -348,11 +348,13 @@ def test_modify_context(context_modified_app):
|
|||||||
|
|
||||||
specific thing: in yer specificpage
|
specific thing: in yer specificpage
|
||||||
global thing: globally appended!
|
global thing: globally appended!
|
||||||
something: orother"""
|
something: orother
|
||||||
|
doubleme: happyhappy"""
|
||||||
|
|
||||||
# General test, should have global context variable only
|
# General test, should have global context variable only
|
||||||
result = context_modified_app.get("/modify_context/")
|
result = context_modified_app.get("/modify_context/")
|
||||||
assert result.body.strip() == """General page!
|
assert result.body.strip() == """General page!
|
||||||
|
|
||||||
global thing: globally appended!
|
global thing: globally appended!
|
||||||
lol: cats"""
|
lol: cats
|
||||||
|
doubleme: joyjoy"""
|
||||||
|
@ -26,6 +26,11 @@ def append_to_global_context(context):
|
|||||||
context['global_append'] = 'globally appended!'
|
context['global_append'] = 'globally appended!'
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
def double_doubleme(context):
|
||||||
|
if 'doubleme' in context:
|
||||||
|
context['doubleme'] = context['doubleme'] * 2
|
||||||
|
return context
|
||||||
|
|
||||||
|
|
||||||
def setup_plugin():
|
def setup_plugin():
|
||||||
routes = [
|
routes = [
|
||||||
@ -46,4 +51,5 @@ hooks = {
|
|||||||
'setup': setup_plugin,
|
'setup': setup_plugin,
|
||||||
('modify_context.specific_page',
|
('modify_context.specific_page',
|
||||||
'contextplugin/specific.html'): append_to_specific_context,
|
'contextplugin/specific.html'): append_to_specific_context,
|
||||||
'template_global_context': append_to_global_context}
|
'template_global_context': append_to_global_context,
|
||||||
|
'template_context_prerender': double_doubleme}
|
||||||
|
@ -2,3 +2,4 @@ General page!
|
|||||||
|
|
||||||
global thing: {{ global_append }}
|
global thing: {{ global_append }}
|
||||||
lol: {{ lol }}
|
lol: {{ lol }}
|
||||||
|
doubleme: {{ doubleme }}
|
||||||
|
@ -3,3 +3,4 @@ Specific page!
|
|||||||
specific thing: {{ specific_page_append }}
|
specific thing: {{ specific_page_append }}
|
||||||
global thing: {{ global_append }}
|
global thing: {{ global_append }}
|
||||||
something: {{ something }}
|
something: {{ something }}
|
||||||
|
doubleme: {{ doubleme }}
|
||||||
|
@ -21,11 +21,13 @@ def specific(request):
|
|||||||
return render_to_response(
|
return render_to_response(
|
||||||
request,
|
request,
|
||||||
'contextplugin/specific.html',
|
'contextplugin/specific.html',
|
||||||
{"something": "orother"})
|
{"something": "orother",
|
||||||
|
"doubleme": "happy"})
|
||||||
|
|
||||||
|
|
||||||
def general(request):
|
def general(request):
|
||||||
return render_to_response(
|
return render_to_response(
|
||||||
request,
|
request,
|
||||||
'contextplugin/general.html',
|
'contextplugin/general.html',
|
||||||
{"lol": "cats"})
|
{"lol": "cats",
|
||||||
|
"doubleme": "joy"})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user