~ubuntu-branches/debian/sid/python-django/sid

« back to all changes in this revision

Viewing changes to tests/regressiontests/templates/nodelist.py

  • Committer: Package Import Robot
  • Author(s): Luke Faraone
  • Date: 2013-11-07 15:33:49 UTC
  • mfrom: (1.3.12)
  • Revision ID: package-import@ubuntu.com-20131107153349-e31sc149l2szs3jb
Tags: 1.6-1
* New upstream version. Closes: #557474, #724637.
* python-django now also suggests the installation of ipython,
  bpython, python-django-doc, and libgdal1.
  Closes: #636511, #686333, #704203
* Set package maintainer to Debian Python Modules Team.
* Bump standards version to 3.9.5, no changes needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
from django.template import VariableNode, Context
2
 
from django.template.loader import get_template_from_string
3
 
from django.utils.unittest import TestCase
4
 
from django.test.utils import override_settings
5
 
 
6
 
class NodelistTest(TestCase):
7
 
 
8
 
    def test_for(self):
9
 
        source = '{% for i in 1 %}{{ a }}{% endfor %}'
10
 
        template = get_template_from_string(source)
11
 
        vars = template.nodelist.get_nodes_by_type(VariableNode)
12
 
        self.assertEqual(len(vars), 1)
13
 
 
14
 
    def test_if(self):
15
 
        source = '{% if x %}{{ a }}{% endif %}'
16
 
        template = get_template_from_string(source)
17
 
        vars = template.nodelist.get_nodes_by_type(VariableNode)
18
 
        self.assertEqual(len(vars), 1)
19
 
 
20
 
    def test_ifequal(self):
21
 
        source = '{% ifequal x y %}{{ a }}{% endifequal %}'
22
 
        template = get_template_from_string(source)
23
 
        vars = template.nodelist.get_nodes_by_type(VariableNode)
24
 
        self.assertEqual(len(vars), 1)
25
 
 
26
 
    def test_ifchanged(self):
27
 
        source = '{% ifchanged x %}{{ a }}{% endifchanged %}'
28
 
        template = get_template_from_string(source)
29
 
        vars = template.nodelist.get_nodes_by_type(VariableNode)
30
 
        self.assertEqual(len(vars), 1)
31
 
 
32
 
 
33
 
class ErrorIndexTest(TestCase):
34
 
    """
35
 
    Checks whether index of error is calculated correctly in
36
 
    template debugger in for loops. Refs ticket #5831
37
 
    """
38
 
    @override_settings(DEBUG=True, TEMPLATE_DEBUG = True)
39
 
    def test_correct_exception_index(self):
40
 
        tests = [
41
 
            ('{% load bad_tag %}{% for i in range %}{% badsimpletag %}{% endfor %}', (38, 56)),
42
 
            ('{% load bad_tag %}{% for i in range %}{% for j in range %}{% badsimpletag %}{% endfor %}{% endfor %}', (58, 76)),
43
 
            ('{% load bad_tag %}{% for i in range %}{% badsimpletag %}{% for j in range %}Hello{% endfor %}{% endfor %}', (38, 56)),
44
 
            ('{% load bad_tag %}{% for i in range %}{% for j in five %}{% badsimpletag %}{% endfor %}{% endfor %}', (38, 57)),
45
 
            ('{% load bad_tag %}{% for j in five %}{% badsimpletag %}{% endfor %}', (18, 37)),
46
 
        ]
47
 
        context = Context({
48
 
            'range': range(5),
49
 
            'five': 5,
50
 
        })
51
 
        for source, expected_error_source_index in tests:
52
 
            template = get_template_from_string(source)
53
 
            try:
54
 
                template.render(context)
55
 
            except (RuntimeError, TypeError) as e:
56
 
                error_source_index = e.django_template_source[1]
57
 
                self.assertEqual(error_source_index,
58
 
                                 expected_error_source_index)