diff options
| author | kapil garg <kapilgarg1996@users.noreply.github.com> | 2017-04-04 07:59:39 +0530 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-04-03 22:29:39 -0400 |
| commit | 002fe076225c2aa6e389481b038f55acb6f807d0 (patch) | |
| tree | fa7930ec59f0cc19840289df06edfed69c299246 /tests/template_tests/syntax_tests/test_include.py | |
| parent | ef8a339dfbe65e207c8945d114c60462a71da034 (diff) | |
Fixed #27974 -- Kept resolved templates constant during one rendering cycle.
Thanks Florian Apolloner for the initial patch.
Diffstat (limited to 'tests/template_tests/syntax_tests/test_include.py')
| -rw-r--r-- | tests/template_tests/syntax_tests/test_include.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/template_tests/syntax_tests/test_include.py b/tests/template_tests/syntax_tests/test_include.py index 904209ea8b..5f92efc05a 100644 --- a/tests/template_tests/syntax_tests/test_include.py +++ b/tests/template_tests/syntax_tests/test_include.py @@ -308,3 +308,23 @@ class IncludeTests(SimpleTestCase): "Recursion! A1 Recursion! B1 B2 B3 Recursion! C1", t.render(Context({'comments': comments})).replace(' ', '').replace('\n', ' ').strip(), ) + + def test_include_cache(self): + """ + {% include %} keeps resolved templates constant (#27974). The + CounterNode object in the {% counter %} template tag is created once + if caching works properly. Each iteration increases the counter instead + of restarting it. + + This works as a regression test only if the cached loader + isn't used, so the @setup decorator isn't used. + """ + engine = Engine(loaders=[ + ('django.template.loaders.locmem.Loader', { + 'template': '{% for x in vars %}{% include "include" %}{% endfor %}', + 'include': '{% include "next" %}', + 'next': '{% load custom %}{% counter %}' + }), + ], libraries={'custom': 'template_tests.templatetags.custom'}) + output = engine.render_to_string('template', dict(vars=range(9))) + self.assertEqual(output, '012345678') |
