comparison genshi/template/tests/text.py @ 865:1adf86694e01 trunk

Also skip the encoding step in the template tests.
author cmlenz
date Thu, 12 Nov 2009 21:25:37 +0000
parents 7811327c536a
children 16ccaf7389d5
comparison
equal deleted inserted replaced
864:f91289c7d092 865:1adf86694e01
31 def tearDown(self): 31 def tearDown(self):
32 shutil.rmtree(self.dirname) 32 shutil.rmtree(self.dirname)
33 33
34 def test_escaping(self): 34 def test_escaping(self):
35 tmpl = OldTextTemplate('\\#escaped') 35 tmpl = OldTextTemplate('\\#escaped')
36 self.assertEqual('#escaped', tmpl.generate().render()) 36 self.assertEqual('#escaped', tmpl.generate().render(encoding=None))
37 37
38 def test_comment(self): 38 def test_comment(self):
39 tmpl = OldTextTemplate('## a comment') 39 tmpl = OldTextTemplate('## a comment')
40 self.assertEqual('', tmpl.generate().render()) 40 self.assertEqual('', tmpl.generate().render(encoding=None))
41 41
42 def test_comment_escaping(self): 42 def test_comment_escaping(self):
43 tmpl = OldTextTemplate('\\## escaped comment') 43 tmpl = OldTextTemplate('\\## escaped comment')
44 self.assertEqual('## escaped comment', tmpl.generate().render()) 44 self.assertEqual('## escaped comment',
45 tmpl.generate().render(encoding=None))
45 46
46 def test_end_with_args(self): 47 def test_end_with_args(self):
47 tmpl = OldTextTemplate(""" 48 tmpl = OldTextTemplate("""
48 #if foo 49 #if foo
49 bar 50 bar
50 #end 'if foo'""") 51 #end 'if foo'""")
51 self.assertEqual('\n', tmpl.generate(foo=False).render()) 52 self.assertEqual('\n', tmpl.generate(foo=False).render(encoding=None))
52 53
53 def test_latin1_encoded(self): 54 def test_latin1_encoded(self):
54 text = u'$foo\xf6$bar'.encode('iso-8859-1') 55 text = u'$foo\xf6$bar'.encode('iso-8859-1')
55 tmpl = OldTextTemplate(text, encoding='iso-8859-1') 56 tmpl = OldTextTemplate(text, encoding='iso-8859-1')
56 self.assertEqual(u'x\xf6y', 57 self.assertEqual(u'x\xf6y',
71 self.assertEqual("""Your items: 72 self.assertEqual("""Your items:
72 73
73 * 0 74 * 0
74 * 1 75 * 1
75 * 2 76 * 2
76 """, tmpl.generate(items=range(3)).render()) 77 """, tmpl.generate(items=range(3)).render(encoding=None))
77 78
78 def test_empty_lines2(self): 79 def test_empty_lines2(self):
79 tmpl = OldTextTemplate("""Your items: 80 tmpl = OldTextTemplate("""Your items:
80 81
81 #for item in items 82 #for item in items
88 89
89 * 1 90 * 1
90 91
91 * 2 92 * 2
92 93
93 """, tmpl.generate(items=range(3)).render()) 94 """, tmpl.generate(items=range(3)).render(encoding=None))
94 95
95 def test_include(self): 96 def test_include(self):
96 file1 = open(os.path.join(self.dirname, 'tmpl1.txt'), 'w') 97 file1 = open(os.path.join(self.dirname, 'tmpl1.txt'), 'w')
97 try: 98 try:
98 file1.write("Included\n") 99 file1.write("Included\n")
110 loader = TemplateLoader([self.dirname]) 111 loader = TemplateLoader([self.dirname])
111 tmpl = loader.load('tmpl2.txt', cls=OldTextTemplate) 112 tmpl = loader.load('tmpl2.txt', cls=OldTextTemplate)
112 self.assertEqual("""----- Included data below this line ----- 113 self.assertEqual("""----- Included data below this line -----
113 Included 114 Included
114 ----- Included data above this line -----""", 115 ----- Included data above this line -----""",
115 tmpl.generate().render()) 116 tmpl.generate().render(encoding=None))
116 117
117 118
118 class NewTextTemplateTestCase(unittest.TestCase): 119 class NewTextTemplateTestCase(unittest.TestCase):
119 """Tests for text template processing.""" 120 """Tests for text template processing."""
120 121
124 def tearDown(self): 125 def tearDown(self):
125 shutil.rmtree(self.dirname) 126 shutil.rmtree(self.dirname)
126 127
127 def test_escaping(self): 128 def test_escaping(self):
128 tmpl = NewTextTemplate('\\{% escaped %}') 129 tmpl = NewTextTemplate('\\{% escaped %}')
129 self.assertEqual('{% escaped %}', tmpl.generate().render()) 130 self.assertEqual('{% escaped %}',
131 tmpl.generate().render(encoding=None))
130 132
131 def test_comment(self): 133 def test_comment(self):
132 tmpl = NewTextTemplate('{# a comment #}') 134 tmpl = NewTextTemplate('{# a comment #}')
133 self.assertEqual('', tmpl.generate().render()) 135 self.assertEqual('', tmpl.generate().render(encoding=None))
134 136
135 def test_comment_escaping(self): 137 def test_comment_escaping(self):
136 tmpl = NewTextTemplate('\\{# escaped comment #}') 138 tmpl = NewTextTemplate('\\{# escaped comment #}')
137 self.assertEqual('{# escaped comment #}', tmpl.generate().render()) 139 self.assertEqual('{# escaped comment #}',
140 tmpl.generate().render(encoding=None))
138 141
139 def test_end_with_args(self): 142 def test_end_with_args(self):
140 tmpl = NewTextTemplate(""" 143 tmpl = NewTextTemplate("""
141 {% if foo %} 144 {% if foo %}
142 bar 145 bar
143 {% end 'if foo' %}""") 146 {% end 'if foo' %}""")
144 self.assertEqual('\n', tmpl.generate(foo=False).render()) 147 self.assertEqual('\n', tmpl.generate(foo=False).render(encoding=None))
145 148
146 def test_latin1_encoded(self): 149 def test_latin1_encoded(self):
147 text = u'$foo\xf6$bar'.encode('iso-8859-1') 150 text = u'$foo\xf6$bar'.encode('iso-8859-1')
148 tmpl = NewTextTemplate(text, encoding='iso-8859-1') 151 tmpl = NewTextTemplate(text, encoding='iso-8859-1')
149 self.assertEqual(u'x\xf6y', 152 self.assertEqual(u'x\xf6y',
164 self.assertEqual("""Your items: 167 self.assertEqual("""Your items:
165 168
166 * 0 169 * 0
167 * 1 170 * 1
168 * 2 171 * 2
169 """, tmpl.generate(items=range(3)).render()) 172 """, tmpl.generate(items=range(3)).render(encoding=None))
170 173
171 def test_empty_lines2(self): 174 def test_empty_lines2(self):
172 tmpl = NewTextTemplate("""Your items: 175 tmpl = NewTextTemplate("""Your items:
173 176
174 {% for item in items %}\ 177 {% for item in items %}\
181 184
182 * 1 185 * 1
183 186
184 * 2 187 * 2
185 188
186 """, tmpl.generate(items=range(3)).render()) 189 """, tmpl.generate(items=range(3)).render(encoding=None))
187 190
188 def test_exec_with_trailing_space(self): 191 def test_exec_with_trailing_space(self):
189 """ 192 """
190 Verify that a code block with trailing space does not cause a syntax 193 Verify that a code block with trailing space does not cause a syntax
191 error (see ticket #127). 194 error (see ticket #127).
200 tmpl = NewTextTemplate("""{% python from datetime import timedelta %} 203 tmpl = NewTextTemplate("""{% python from datetime import timedelta %}
201 ${timedelta(days=2)} 204 ${timedelta(days=2)}
202 """) 205 """)
203 self.assertEqual(""" 206 self.assertEqual("""
204 2 days, 0:00:00 207 2 days, 0:00:00
205 """, tmpl.generate().render()) 208 """, tmpl.generate().render(encoding=None))
206 209
207 def test_exec_def(self): 210 def test_exec_def(self):
208 tmpl = NewTextTemplate("""{% python 211 tmpl = NewTextTemplate("""{% python
209 def foo(): 212 def foo():
210 return 42 213 return 42
211 %} 214 %}
212 ${foo()} 215 ${foo()}
213 """) 216 """)
214 self.assertEqual(""" 217 self.assertEqual("""
215 42 218 42
216 """, tmpl.generate().render()) 219 """, tmpl.generate().render(encoding=None))
217 220
218 def test_include(self): 221 def test_include(self):
219 file1 = open(os.path.join(self.dirname, 'tmpl1.txt'), 'w') 222 file1 = open(os.path.join(self.dirname, 'tmpl1.txt'), 'w')
220 try: 223 try:
221 file1.write("Included") 224 file1.write("Included")
232 235
233 loader = TemplateLoader([self.dirname]) 236 loader = TemplateLoader([self.dirname])
234 tmpl = loader.load('tmpl2.txt', cls=NewTextTemplate) 237 tmpl = loader.load('tmpl2.txt', cls=NewTextTemplate)
235 self.assertEqual("""----- Included data below this line ----- 238 self.assertEqual("""----- Included data below this line -----
236 Included 239 Included
237 ----- Included data above this line -----""", tmpl.generate().render()) 240 ----- Included data above this line -----""",
241 tmpl.generate().render(encoding=None))
238 242
239 def test_include_expr(self): 243 def test_include_expr(self):
240 file1 = open(os.path.join(self.dirname, 'tmpl1.txt'), 'w') 244 file1 = open(os.path.join(self.dirname, 'tmpl1.txt'), 'w')
241 try: 245 try:
242 file1.write("Included") 246 file1.write("Included")
253 257
254 loader = TemplateLoader([self.dirname]) 258 loader = TemplateLoader([self.dirname])
255 tmpl = loader.load('tmpl2.txt', cls=NewTextTemplate) 259 tmpl = loader.load('tmpl2.txt', cls=NewTextTemplate)
256 self.assertEqual("""----- Included data below this line ----- 260 self.assertEqual("""----- Included data below this line -----
257 Included 261 Included
258 ----- Included data above this line -----""", tmpl.generate().render()) 262 ----- Included data above this line -----""",
263 tmpl.generate().render(encoding=None))
259 264
260 265
261 def suite(): 266 def suite():
262 suite = unittest.TestSuite() 267 suite = unittest.TestSuite()
263 suite.addTest(doctest.DocTestSuite(NewTextTemplate.__module__)) 268 suite.addTest(doctest.DocTestSuite(NewTextTemplate.__module__))
Copyright (C) 2012-2017 Edgewall Software