Code

Ticket #7806: tplrf-tests.diff

File tplrf-tests.diff, 6.3 KB (added by emulbreh, 6 years ago)
Line 
1Index: tests/regressiontests/templates/tests.py
2===================================================================
3--- tests/regressiontests/templates/tests.py    (revision 7884)
4+++ tests/regressiontests/templates/tests.py    (working copy)
5@@ -280,7 +280,11 @@
6             'basic-syntax25': ('{{ "fred" }}', {}, "fred"),
7             'basic-syntax26': (r'{{ "\"fred\"" }}', {}, "\"fred\""),
8             'basic-syntax27': (r'{{ _("\"fred\"") }}', {}, "\"fred\""),
9+            'basic-syntax28': ("{{ 'fred' }}", {}, "fred"),
10+            'basic-syntax29': (r"{{ '\'fred\'' }}", {}, "'fred'"),
11+            'basic-syntax30': (r"{{ _('\'fred\'') }}", {}, "'fred'"),
12 
13+
14             # List-index syntax allows a template to access a certain item of a subscriptable object.
15             'list-index01': ("{{ var.1 }}", {"var": ["first item", "second item"]}, "second item"),
16 
17@@ -364,6 +368,9 @@
18 
19             # Numbers as filter arguments should work
20             'filter-syntax19': ('{{ var|truncatewords:1 }}', {"var": "hello world"}, "hello ..."),
21+           
22+            # Single quoted argument
23+            'filter-syntax20': (r"{{ var|yesno:'yup,nup,mup' }} {{ var|yesno }}", {"var": True}, 'yup yes'),           
24 
25             ### COMMENT SYNTAX ########################################################
26             'comment-syntax01': ("{# this is hidden #}hello", {}, "hello"),
27@@ -407,6 +414,11 @@
28             'cycle13': ("{% for i in test %}{% cycle 'a' 'b' %}{{ i }},{% endfor %}", {'test': range(5)}, 'a0,b1,a2,b3,a4,'),
29             'cycle14': ("{% cycle one two as foo %}{% cycle foo %}", {'one': '1','two': '2'}, '12'),
30             'cycle13': ("{% for i in test %}{% cycle aye bee %}{{ i }},{% endfor %}", {'test': range(5), 'aye': 'a', 'bee': 'b'}, 'a0,b1,a2,b3,a4,'),
31+           
32+            ### EMPTY STRINGS #########################################################
33+            'emptystring01': ("{{ '' }}", {}, ""),
34+            'emptystring02': ("{% ifequal foo '' %}x{% endifequal %}", {'foo': ''}, 'x'),
35+            'emptystring03': ("{% ifequal foo|default:'' foo %}x{% endifequal %}", {'foo': ''}, 'x'),
36 
37             ### EXCEPTIONS ############################################################
38 
39@@ -576,6 +588,13 @@
40             'ifequal08': ('{% ifequal a "test" %}yes{% else %}no{% endifequal %}', {"a": "no"}, "no"),
41             'ifequal09': ('{% ifequal a "test" %}yes{% else %}no{% endifequal %}', {}, "no"),
42             'ifequal10': ('{% ifequal a b %}yes{% else %}no{% endifequal %}', {}, "yes"),
43+           
44+            ## FILTER EXPRESSIONS AS ARGUMENTS ########################################
45+            'ifequal-filter01': ('{% ifequal a|upper "A" %}x{% endifequal %}', {'a': 'a'}, 'x'),
46+            'ifequal-filter02': ('{% ifequal "A" a|upper %}x{% endifequal %}', {'a': 'a'}, 'x'),
47+            'ifequal-filter03': ('{% ifequal a|upper b|upper %}x{% endifequal %}', {'a': 'x', 'b': 'X'}, 'x'),
48+            'ifequal-filter04': ('{% ifequal x|slice:"1" "a" %}x{% endifequal %}', {'x': 'aaa'}, 'x'),
49+            'ifequal-filter05': ('{% ifequal x|slice:"1"|upper "A" %}x{% endifequal %}', {'x': 'aaa'}, 'x'),
50 
51             # SMART SPLITTING
52             'ifequal-split01': ('{% ifequal a "test man" %}yes{% else %}no{% endifequal %}', {}, "no"),
53@@ -796,6 +815,12 @@
54                             you
55                             gentlemen.
56                             """),
57+            ### NEGATIVE NUMERIC LITERALS #############################################                           
58+            'negative-numeric-literal01': ('{{ -1 }}', {}, '-1'),
59+            'negative-numeric-literal02': ('{{ -2.01 }}', {}, '-2.01'),
60+            'negative-numeric-literal03': ('{{ -0.1 }}', {}, '-0.1'),
61+            'negative-numeric-literal04': ('{% ifequal -1 -1 %}x{% endifequal %}', {}, 'x'),
62+            'negative-numeric-literal05': ('{{ foo|default:-1 }}', {'foo': None}, '-1'),
63 
64             ### REGROUP TAG ###########################################################
65             'regroup01': ('{% regroup data by bar as grouped %}' + \
66@@ -821,6 +846,20 @@
67                           '{% endfor %},' + \
68                           '{% endfor %}',
69                           {}, ''),
70+                         
71+            'regroup03': ('{% regroup data by created|date:"F Y" as grouped %}' + \
72+                          '{% for group in grouped %}' + \
73+                          '{{ group.grouper }}' + \
74+                          '({% for item in group.list %}' + \
75+                          '{{ item.created|date:"d" }}' + \
76+                          '{% endfor %})' + \
77+                          '{% endfor %}',                         
78+                          {'data': [
79+                              {'created': datetime(2008, 1, 1)},
80+                              {'created': datetime(2008, 2, 2)},
81+                              {'created': datetime(2008, 3, 3)},
82+                              {'created': datetime(2008, 4, 4)},
83+                          ]}, 'January 2008(01)February 2008(02)March 2008(03)April 2008(04)'),
84 
85             ### TEMPLATETAG TAG #######################################################
86             'templatetag01': ('{% templatetag openblock %}', {}, '{%'),
87@@ -860,7 +899,7 @@
88 
89             'with-error01': ('{% with dict.key xx key %}{{ key }}{% endwith %}', {'dict': {'key':50}}, template.TemplateSyntaxError),
90             'with-error02': ('{% with dict.key as %}{{ key }}{% endwith %}', {'dict': {'key':50}}, template.TemplateSyntaxError),
91-
92+                       
93             ### NOW TAG ########################################################
94             # Simple case
95             'now01': ('{% now "j n Y"%}', {}, str(datetime.now().day) + ' ' + str(datetime.now().month) + ' ' + str(datetime.now().year)),
96@@ -877,6 +916,7 @@
97             'url03': ('{% url regressiontests.templates.views.index %}', {}, '/url_tag/'),
98             'url04': ('{% url named.client client.id %}', {'client': {'id': 1}}, '/url_tag/named-client/1/'),
99             'url05': (u'{% url метка_оператора v %}', {'v': u'Ω'}, '/url_tag/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4/%CE%A9/'),
100+            'url06': (u'{% url "метка_оператора" v %}', {'v': u'Ω'}, '/url_tag/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4/%CE%A9/'),
101 
102             # Failures
103             'url-fail01': ('{% url %}', {}, template.TemplateSyntaxError),