test_if_equal.py 9.66 KB
Newer Older
1
from django.test import SimpleTestCase
2

3
from ..utils import setup
4 5


6
class IfEqualTagTests(SimpleTestCase):
7 8 9

    @setup({'ifequal01': '{% ifequal a b %}yes{% endifequal %}'})
    def test_ifequal01(self):
10
        output = self.engine.render_to_string('ifequal01', {'a': 1, 'b': 2})
11 12 13 14
        self.assertEqual(output, '')

    @setup({'ifequal02': '{% ifequal a b %}yes{% endifequal %}'})
    def test_ifequal02(self):
15
        output = self.engine.render_to_string('ifequal02', {'a': 1, 'b': 1})
16 17 18 19
        self.assertEqual(output, 'yes')

    @setup({'ifequal03': '{% ifequal a b %}yes{% else %}no{% endifequal %}'})
    def test_ifequal03(self):
20
        output = self.engine.render_to_string('ifequal03', {'a': 1, 'b': 2})
21 22 23 24
        self.assertEqual(output, 'no')

    @setup({'ifequal04': '{% ifequal a b %}yes{% else %}no{% endifequal %}'})
    def test_ifequal04(self):
25
        output = self.engine.render_to_string('ifequal04', {'a': 1, 'b': 1})
26 27 28 29
        self.assertEqual(output, 'yes')

    @setup({'ifequal05': '{% ifequal a \'test\' %}yes{% else %}no{% endifequal %}'})
    def test_ifequal05(self):
30
        output = self.engine.render_to_string('ifequal05', {'a': 'test'})
31 32 33 34
        self.assertEqual(output, 'yes')

    @setup({'ifequal06': '{% ifequal a \'test\' %}yes{% else %}no{% endifequal %}'})
    def test_ifequal06(self):
35
        output = self.engine.render_to_string('ifequal06', {'a': 'no'})
36 37 38 39
        self.assertEqual(output, 'no')

    @setup({'ifequal07': '{% ifequal a "test" %}yes{% else %}no{% endifequal %}'})
    def test_ifequal07(self):
40
        output = self.engine.render_to_string('ifequal07', {'a': 'test'})
41 42 43 44
        self.assertEqual(output, 'yes')

    @setup({'ifequal08': '{% ifequal a "test" %}yes{% else %}no{% endifequal %}'})
    def test_ifequal08(self):
45
        output = self.engine.render_to_string('ifequal08', {'a': 'no'})
46 47 48 49
        self.assertEqual(output, 'no')

    @setup({'ifequal09': '{% ifequal a "test" %}yes{% else %}no{% endifequal %}'})
    def test_ifequal09(self):
50
        output = self.engine.render_to_string('ifequal09')
51 52 53 54
        self.assertEqual(output, 'no')

    @setup({'ifequal10': '{% ifequal a b %}yes{% else %}no{% endifequal %}'})
    def test_ifequal10(self):
55
        output = self.engine.render_to_string('ifequal10')
56 57 58 59 60
        self.assertEqual(output, 'yes')

    # SMART SPLITTING
    @setup({'ifequal-split01': '{% ifequal a "test man" %}yes{% else %}no{% endifequal %}'})
    def test_ifequal_split01(self):
61
        output = self.engine.render_to_string('ifequal-split01')
62 63 64 65
        self.assertEqual(output, 'no')

    @setup({'ifequal-split02': '{% ifequal a "test man" %}yes{% else %}no{% endifequal %}'})
    def test_ifequal_split02(self):
66
        output = self.engine.render_to_string('ifequal-split02', {'a': 'foo'})
67 68 69 70
        self.assertEqual(output, 'no')

    @setup({'ifequal-split03': '{% ifequal a "test man" %}yes{% else %}no{% endifequal %}'})
    def test_ifequal_split03(self):
71
        output = self.engine.render_to_string('ifequal-split03', {'a': 'test man'})
72 73 74 75
        self.assertEqual(output, 'yes')

    @setup({'ifequal-split04': '{% ifequal a \'test man\' %}yes{% else %}no{% endifequal %}'})
    def test_ifequal_split04(self):
76
        output = self.engine.render_to_string('ifequal-split04', {'a': 'test man'})
77 78 79 80
        self.assertEqual(output, 'yes')

    @setup({'ifequal-split05': '{% ifequal a \'i "love" you\' %}yes{% else %}no{% endifequal %}'})
    def test_ifequal_split05(self):
81
        output = self.engine.render_to_string('ifequal-split05', {'a': ''})
82 83 84 85
        self.assertEqual(output, 'no')

    @setup({'ifequal-split06': '{% ifequal a \'i "love" you\' %}yes{% else %}no{% endifequal %}'})
    def test_ifequal_split06(self):
86
        output = self.engine.render_to_string('ifequal-split06', {'a': 'i "love" you'})
87 88 89 90
        self.assertEqual(output, 'yes')

    @setup({'ifequal-split07': '{% ifequal a \'i "love" you\' %}yes{% else %}no{% endifequal %}'})
    def test_ifequal_split07(self):
91
        output = self.engine.render_to_string('ifequal-split07', {'a': 'i love you'})
92 93 94 95
        self.assertEqual(output, 'no')

    @setup({'ifequal-split08': r"{% ifequal a 'I\'m happy' %}yes{% else %}no{% endifequal %}"})
    def test_ifequal_split08(self):
96
        output = self.engine.render_to_string('ifequal-split08', {'a': "I'm happy"})
97 98 99 100
        self.assertEqual(output, 'yes')

    @setup({'ifequal-split09': r"{% ifequal a 'slash\man' %}yes{% else %}no{% endifequal %}"})
    def test_ifequal_split09(self):
101
        output = self.engine.render_to_string('ifequal-split09', {'a': 'slash\man'})
102 103 104 105
        self.assertEqual(output, 'yes')

    @setup({'ifequal-split10': r"{% ifequal a 'slash\man' %}yes{% else %}no{% endifequal %}"})
    def test_ifequal_split10(self):
106
        output = self.engine.render_to_string('ifequal-split10', {'a': 'slashman'})
107 108 109 110 111
        self.assertEqual(output, 'no')

    # NUMERIC RESOLUTION
    @setup({'ifequal-numeric01': '{% ifequal x 5 %}yes{% endifequal %}'})
    def test_ifequal_numeric01(self):
112
        output = self.engine.render_to_string('ifequal-numeric01', {'x': '5'})
113 114 115 116
        self.assertEqual(output, '')

    @setup({'ifequal-numeric02': '{% ifequal x 5 %}yes{% endifequal %}'})
    def test_ifequal_numeric02(self):
117
        output = self.engine.render_to_string('ifequal-numeric02', {'x': 5})
118 119 120 121
        self.assertEqual(output, 'yes')

    @setup({'ifequal-numeric03': '{% ifequal x 5.2 %}yes{% endifequal %}'})
    def test_ifequal_numeric03(self):
122
        output = self.engine.render_to_string('ifequal-numeric03', {'x': 5})
123 124 125 126
        self.assertEqual(output, '')

    @setup({'ifequal-numeric04': '{% ifequal x 5.2 %}yes{% endifequal %}'})
    def test_ifequal_numeric04(self):
127
        output = self.engine.render_to_string('ifequal-numeric04', {'x': 5.2})
128 129 130 131
        self.assertEqual(output, 'yes')

    @setup({'ifequal-numeric05': '{% ifequal x 0.2 %}yes{% endifequal %}'})
    def test_ifequal_numeric05(self):
132
        output = self.engine.render_to_string('ifequal-numeric05', {'x': 0.2})
133 134 135 136
        self.assertEqual(output, 'yes')

    @setup({'ifequal-numeric06': '{% ifequal x .2 %}yes{% endifequal %}'})
    def test_ifequal_numeric06(self):
137
        output = self.engine.render_to_string('ifequal-numeric06', {'x': 0.2})
138 139 140 141
        self.assertEqual(output, 'yes')

    @setup({'ifequal-numeric07': '{% ifequal x 2. %}yes{% endifequal %}'})
    def test_ifequal_numeric07(self):
142
        output = self.engine.render_to_string('ifequal-numeric07', {'x': 2})
143 144 145 146
        self.assertEqual(output, '')

    @setup({'ifequal-numeric08': '{% ifequal x "5" %}yes{% endifequal %}'})
    def test_ifequal_numeric08(self):
147
        output = self.engine.render_to_string('ifequal-numeric08', {'x': 5})
148 149 150 151
        self.assertEqual(output, '')

    @setup({'ifequal-numeric09': '{% ifequal x "5" %}yes{% endifequal %}'})
    def test_ifequal_numeric09(self):
152
        output = self.engine.render_to_string('ifequal-numeric09', {'x': '5'})
153 154 155 156
        self.assertEqual(output, 'yes')

    @setup({'ifequal-numeric10': '{% ifequal x -5 %}yes{% endifequal %}'})
    def test_ifequal_numeric10(self):
157
        output = self.engine.render_to_string('ifequal-numeric10', {'x': -5})
158 159 160 161
        self.assertEqual(output, 'yes')

    @setup({'ifequal-numeric11': '{% ifequal x -5.2 %}yes{% endifequal %}'})
    def test_ifequal_numeric11(self):
162
        output = self.engine.render_to_string('ifequal-numeric11', {'x': -5.2})
163 164 165 166
        self.assertEqual(output, 'yes')

    @setup({'ifequal-numeric12': '{% ifequal x +5 %}yes{% endifequal %}'})
    def test_ifequal_numeric12(self):
167
        output = self.engine.render_to_string('ifequal-numeric12', {'x': 5})
168 169 170 171 172
        self.assertEqual(output, 'yes')

    # FILTER EXPRESSIONS AS ARGUMENTS
    @setup({'ifequal-filter01': '{% ifequal a|upper "A" %}x{% endifequal %}'})
    def test_ifequal_filter01(self):
173
        output = self.engine.render_to_string('ifequal-filter01', {'a': 'a'})
174 175 176 177
        self.assertEqual(output, 'x')

    @setup({'ifequal-filter02': '{% ifequal "A" a|upper %}x{% endifequal %}'})
    def test_ifequal_filter02(self):
178
        output = self.engine.render_to_string('ifequal-filter02', {'a': 'a'})
179 180 181 182
        self.assertEqual(output, 'x')

    @setup({'ifequal-filter03': '{% ifequal a|upper b|upper %}x{% endifequal %}'})
    def test_ifequal_filter03(self):
183
        output = self.engine.render_to_string('ifequal-filter03', {'a': 'x', 'b': 'X'})
184 185 186 187
        self.assertEqual(output, 'x')

    @setup({'ifequal-filter04': '{% ifequal x|slice:"1" "a" %}x{% endifequal %}'})
    def test_ifequal_filter04(self):
188
        output = self.engine.render_to_string('ifequal-filter04', {'x': 'aaa'})
189 190 191 192
        self.assertEqual(output, 'x')

    @setup({'ifequal-filter05': '{% ifequal x|slice:"1"|upper "A" %}x{% endifequal %}'})
    def test_ifequal_filter05(self):
193
        output = self.engine.render_to_string('ifequal-filter05', {'x': 'aaa'})
194 195 196
        self.assertEqual(output, 'x')


197
class IfNotEqualTagTests(SimpleTestCase):
198 199 200

    @setup({'ifnotequal01': '{% ifnotequal a b %}yes{% endifnotequal %}'})
    def test_ifnotequal01(self):
201
        output = self.engine.render_to_string('ifnotequal01', {'a': 1, 'b': 2})
202 203 204 205
        self.assertEqual(output, 'yes')

    @setup({'ifnotequal02': '{% ifnotequal a b %}yes{% endifnotequal %}'})
    def test_ifnotequal02(self):
206
        output = self.engine.render_to_string('ifnotequal02', {'a': 1, 'b': 1})
207 208 209 210
        self.assertEqual(output, '')

    @setup({'ifnotequal03': '{% ifnotequal a b %}yes{% else %}no{% endifnotequal %}'})
    def test_ifnotequal03(self):
211
        output = self.engine.render_to_string('ifnotequal03', {'a': 1, 'b': 2})
212 213 214 215
        self.assertEqual(output, 'yes')

    @setup({'ifnotequal04': '{% ifnotequal a b %}yes{% else %}no{% endifnotequal %}'})
    def test_ifnotequal04(self):
216
        output = self.engine.render_to_string('ifnotequal04', {'a': 1, 'b': 1})
217
        self.assertEqual(output, 'no')