comparison markup/tests/template.py @ 185:8e5a3048b359

Fix for #34: `py:def` macros can now be invoked from within expressions in attribute values.
author cmlenz
date Tue, 22 Aug 2006 14:52:44 +0000
parents e27a48802987
children f0b32f1c478c
comparison
equal deleted inserted replaced
184:e27a48802987 185:8e5a3048b359
257 <b py:def="echo(what, bold=False)" py:strip="not bold">${what}</b> 257 <b py:def="echo(what, bold=False)" py:strip="not bold">${what}</b>
258 ${echo('foo')} 258 ${echo('foo')}
259 </doc>""") 259 </doc>""")
260 self.assertEqual("""<doc> 260 self.assertEqual("""<doc>
261 foo 261 foo
262 </doc>""", str(tmpl.generate()))
263
264 def test_invocation_in_attribute(self):
265 tmpl = Template("""<doc xmlns:py="http://markup.edgewall.org/">
266 <py:def function="echo(what)">${what or 'something'}</py:def>
267 <p class="${echo('foo')}">bar</p>
268 </doc>""")
269 self.assertEqual("""<doc>
270 <p class="foo">bar</p>
271 </doc>""", str(tmpl.generate()))
272
273 def test_invocation_in_attribute_none(self):
274 tmpl = Template("""<doc xmlns:py="http://markup.edgewall.org/">
275 <py:def function="echo()">${None}</py:def>
276 <p class="${echo()}">bar</p>
277 </doc>""")
278 self.assertEqual("""<doc>
279 <p>bar</p>
262 </doc>""", str(tmpl.generate())) 280 </doc>""", str(tmpl.generate()))
263 281
264 282
265 class ForDirectiveTestCase(unittest.TestCase): 283 class ForDirectiveTestCase(unittest.TestCase):
266 """Tests for the `py:for` template directive.""" 284 """Tests for the `py:for` template directive."""
Copyright (C) 2012-2017 Edgewall Software