Fixed #26830 -- Prevented the 'with' templatetag from resetting the cycle variable to its initial state.

This commit is contained in:
Alexander Schrijver 2016-07-16 22:55:40 +02:00 committed by Tim Graham
parent 31e053edfa
commit 3ae3a1f9fa
4 changed files with 66 additions and 1 deletions

View file

@ -145,3 +145,25 @@ class CycleTagTests(SimpleTestCase):
"""
output = self.engine.render_to_string('cycle29', {'values': [1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 9, 9]})
self.assertEqual(output, 'bcabcabcccaa')
@setup({
'cycle30': "{% cycle 'a' 'b' 'c' as cycler silent %}"
"{% for x in values %}"
"{% with doesnothing=irrelevant %}"
"{% ifchanged x %}"
"{% cycle cycler %}{{ cycler }}"
"{% else %}"
"{{ cycler }}"
"{% endifchanged %}"
"{% endwith %}"
"{% endfor %}"})
def test_cycle30(self):
"""
A {% with %} tag shouldn't reset the {% cycle %} variable.
"""
output = self.engine.render_to_string(
'cycle30', {
'irrelevant': 1,
'values': [1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 9, 9]
})
self.assertEqual(output, 'bcabcabcccaa')