diff options
Diffstat (limited to 'tests/template_tests/syntax_tests/test_regroup.py')
| -rw-r--r-- | tests/template_tests/syntax_tests/test_regroup.py | 197 |
1 files changed, 117 insertions, 80 deletions
diff --git a/tests/template_tests/syntax_tests/test_regroup.py b/tests/template_tests/syntax_tests/test_regroup.py index 2c0135587e..eca5e0d5f9 100644 --- a/tests/template_tests/syntax_tests/test_regroup.py +++ b/tests/template_tests/syntax_tests/test_regroup.py @@ -7,115 +7,152 @@ from ..utils import setup class RegroupTagTests(SimpleTestCase): - - @setup({'regroup01': '' - '{% regroup data by bar as grouped %}' - '{% for group in grouped %}' - '{{ group.grouper }}:' - '{% for item in group.list %}' - '{{ item.foo }}' - '{% endfor %},' - '{% endfor %}'}) + @setup( + { + "regroup01": "" + "{% regroup data by bar as grouped %}" + "{% for group in grouped %}" + "{{ group.grouper }}:" + "{% for item in group.list %}" + "{{ item.foo }}" + "{% endfor %}," + "{% endfor %}" + } + ) def test_regroup01(self): - output = self.engine.render_to_string('regroup01', { - 'data': [{'foo': 'c', 'bar': 1}, - {'foo': 'd', 'bar': 1}, - {'foo': 'a', 'bar': 2}, - {'foo': 'b', 'bar': 2}, - {'foo': 'x', 'bar': 3}], - }) - self.assertEqual(output, '1:cd,2:ab,3:x,') + output = self.engine.render_to_string( + "regroup01", + { + "data": [ + {"foo": "c", "bar": 1}, + {"foo": "d", "bar": 1}, + {"foo": "a", "bar": 2}, + {"foo": "b", "bar": 2}, + {"foo": "x", "bar": 3}, + ], + }, + ) + self.assertEqual(output, "1:cd,2:ab,3:x,") - @setup({'regroup02': '' - '{% regroup data by bar as grouped %}' - '{% for group in grouped %}' - '{{ group.grouper }}:' - '{% for item in group.list %}' - '{{ item.foo }}' - '{% endfor %}' - '{% endfor %}'}) + @setup( + { + "regroup02": "" + "{% regroup data by bar as grouped %}" + "{% for group in grouped %}" + "{{ group.grouper }}:" + "{% for item in group.list %}" + "{{ item.foo }}" + "{% endfor %}" + "{% endfor %}" + } + ) def test_regroup02(self): """ Test for silent failure when target variable isn't found """ - output = self.engine.render_to_string('regroup02', {}) - self.assertEqual(output, '') + output = self.engine.render_to_string("regroup02", {}) + self.assertEqual(output, "") - @setup({'regroup03': '' - '{% regroup data by at|date:"m" as grouped %}' - '{% for group in grouped %}' - '{{ group.grouper }}:' - '{% for item in group.list %}' - '{{ item.at|date:"d" }}' - '{% endfor %},' - '{% endfor %}'}) + @setup( + { + "regroup03": "" + '{% regroup data by at|date:"m" as grouped %}' + "{% for group in grouped %}" + "{{ group.grouper }}:" + "{% for item in group.list %}" + '{{ item.at|date:"d" }}' + "{% endfor %}," + "{% endfor %}" + } + ) def test_regroup03(self): """ Regression tests for #17675 The date template filter has expects_localtime = True """ - output = self.engine.render_to_string('regroup03', { - 'data': [{'at': date(2012, 2, 14)}, - {'at': date(2012, 2, 28)}, - {'at': date(2012, 7, 4)}], - }) - self.assertEqual(output, '02:1428,07:04,') + output = self.engine.render_to_string( + "regroup03", + { + "data": [ + {"at": date(2012, 2, 14)}, + {"at": date(2012, 2, 28)}, + {"at": date(2012, 7, 4)}, + ], + }, + ) + self.assertEqual(output, "02:1428,07:04,") - @setup({'regroup04': '' - '{% regroup data by bar|join:"" as grouped %}' - '{% for group in grouped %}' - '{{ group.grouper }}:' - '{% for item in group.list %}' - '{{ item.foo|first }}' - '{% endfor %},' - '{% endfor %}'}) + @setup( + { + "regroup04": "" + '{% regroup data by bar|join:"" as grouped %}' + "{% for group in grouped %}" + "{{ group.grouper }}:" + "{% for item in group.list %}" + "{{ item.foo|first }}" + "{% endfor %}," + "{% endfor %}" + } + ) def test_regroup04(self): """ The join template filter has needs_autoescape = True """ - output = self.engine.render_to_string('regroup04', { - 'data': [{'foo': 'x', 'bar': ['ab', 'c']}, - {'foo': 'y', 'bar': ['a', 'bc']}, - {'foo': 'z', 'bar': ['a', 'd']}], - }) - self.assertEqual(output, 'abc:xy,ad:z,') + output = self.engine.render_to_string( + "regroup04", + { + "data": [ + {"foo": "x", "bar": ["ab", "c"]}, + {"foo": "y", "bar": ["a", "bc"]}, + {"foo": "z", "bar": ["a", "d"]}, + ], + }, + ) + self.assertEqual(output, "abc:xy,ad:z,") # Test syntax errors - @setup({'regroup05': '{% regroup data by bar as %}'}) + @setup({"regroup05": "{% regroup data by bar as %}"}) def test_regroup05(self): with self.assertRaises(TemplateSyntaxError): - self.engine.get_template('regroup05') + self.engine.get_template("regroup05") - @setup({'regroup06': '{% regroup data by bar thisaintright grouped %}'}) + @setup({"regroup06": "{% regroup data by bar thisaintright grouped %}"}) def test_regroup06(self): with self.assertRaises(TemplateSyntaxError): - self.engine.get_template('regroup06') + self.engine.get_template("regroup06") - @setup({'regroup07': '{% regroup data thisaintright bar as grouped %}'}) + @setup({"regroup07": "{% regroup data thisaintright bar as grouped %}"}) def test_regroup07(self): with self.assertRaises(TemplateSyntaxError): - self.engine.get_template('regroup07') + self.engine.get_template("regroup07") - @setup({'regroup08': '{% regroup data by bar as grouped toomanyargs %}'}) + @setup({"regroup08": "{% regroup data by bar as grouped toomanyargs %}"}) def test_regroup08(self): with self.assertRaises(TemplateSyntaxError): - self.engine.get_template('regroup08') + self.engine.get_template("regroup08") - @setup({'regroup_unpack': '{% regroup data by bar as grouped %}' - '{% for grouper, group in grouped %}' - '{{ grouper }}:' - '{% for item in group %}' - '{{ item.foo }}' - '{% endfor %},' - '{% endfor %}'}) + @setup( + { + "regroup_unpack": "{% regroup data by bar as grouped %}" + "{% for grouper, group in grouped %}" + "{{ grouper }}:" + "{% for item in group %}" + "{{ item.foo }}" + "{% endfor %}," + "{% endfor %}" + } + ) def test_regroup_unpack(self): - output = self.engine.render_to_string('regroup_unpack', { - 'data': [ - {'foo': 'c', 'bar': 1}, - {'foo': 'd', 'bar': 1}, - {'foo': 'a', 'bar': 2}, - {'foo': 'b', 'bar': 2}, - {'foo': 'x', 'bar': 3}, - ], - }) - self.assertEqual(output, '1:cd,2:ab,3:x,') + output = self.engine.render_to_string( + "regroup_unpack", + { + "data": [ + {"foo": "c", "bar": 1}, + {"foo": "d", "bar": 1}, + {"foo": "a", "bar": 2}, + {"foo": "b", "bar": 2}, + {"foo": "x", "bar": 3}, + ], + }, + ) + self.assertEqual(output, "1:cd,2:ab,3:x,") |
