comparison genshi/template/tests/markup.py @ 656:f3bc1de7138d trunk

Add unit test for #157, which seems to be working okay in trunk.
author cmlenz
date Thu, 22 Nov 2007 20:04:23 +0000
parents 9ff8eccc6f1f
children 08f22328303d
comparison
equal deleted inserted replaced
655:14aa86c3e514 656:f3bc1de7138d
268 <div>Included 0</div><div>Included 1</div><div>Included 2</div> 268 <div>Included 0</div><div>Included 1</div><div>Included 2</div>
269 </html>""", tmpl.generate(name='tmpl1').render()) 269 </html>""", tmpl.generate(name='tmpl1').render())
270 finally: 270 finally:
271 shutil.rmtree(dirname) 271 shutil.rmtree(dirname)
272 272
273 def test_dynamic_inlude_href(self): 273 def test_dynamic_include_href(self):
274 dirname = tempfile.mkdtemp(suffix='genshi_test') 274 dirname = tempfile.mkdtemp(suffix='genshi_test')
275 try: 275 try:
276 file1 = open(os.path.join(dirname, 'tmpl1.html'), 'w') 276 file1 = open(os.path.join(dirname, 'tmpl1.html'), 'w')
277 try: 277 try:
278 file1.write("""<div>Included</div>""") 278 file1.write("""<div>Included</div>""")
294 <div>Included</div> 294 <div>Included</div>
295 </html>""", tmpl.generate(name='tmpl1').render()) 295 </html>""", tmpl.generate(name='tmpl1').render())
296 finally: 296 finally:
297 shutil.rmtree(dirname) 297 shutil.rmtree(dirname)
298 298
299 def test_select_inluded_elements(self): 299 def test_select_included_elements(self):
300 dirname = tempfile.mkdtemp(suffix='genshi_test') 300 dirname = tempfile.mkdtemp(suffix='genshi_test')
301 try: 301 try:
302 file1 = open(os.path.join(dirname, 'tmpl1.html'), 'w') 302 file1 = open(os.path.join(dirname, 'tmpl1.html'), 'w')
303 try: 303 try:
304 file1.write("""<li>$item</li>""") 304 file1.write("""<li>$item</li>""")
609 <body> 609 <body>
610 wakka wakka wakka 610 wakka wakka wakka
611 </body> 611 </body>
612 </html>""", tmpl.generate().render()) 612 </html>""", tmpl.generate().render())
613 613
614 def test_nested_include_matches(self):
615 # See ticket #157
616 dirname = tempfile.mkdtemp(suffix='genshi_test')
617 try:
618 file1 = open(os.path.join(dirname, 'tmpl1.html'), 'w')
619 try:
620 file1.write("""<html xmlns:py="http://genshi.edgewall.org/" py:strip="">
621 <div class="target">Some content.</div>
622 </html>""")
623 finally:
624 file1.close()
625
626 file2 = open(os.path.join(dirname, 'tmpl2.html'), 'w')
627 try:
628 file2.write("""<html xmlns:py="http://genshi.edgewall.org/"
629 xmlns:xi="http://www.w3.org/2001/XInclude">
630 <body>
631 <h1>Some full html document that includes file1.html</h1>
632 <xi:include href="tmpl1.html" />
633 </body>
634 </html>""")
635 finally:
636 file2.close()
637
638 file3 = open(os.path.join(dirname, 'tmpl3.html'), 'w')
639 try:
640 file3.write("""<html xmlns:py="http://genshi.edgewall.org/"
641 xmlns:xi="http://www.w3.org/2001/XInclude" py:strip="">
642 <div py:match="div[@class='target']" py:attrs="select('@*')">
643 Some added stuff.
644 ${select('*|text()')}
645 </div>
646 <xi:include href="tmpl2.html" />
647 </html>
648 """)
649 finally:
650 file3.close()
651
652 loader = TemplateLoader([dirname])
653 tmpl = loader.load('tmpl3.html')
654 self.assertEqual("""
655 <html>
656 <body>
657 <h1>Some full html document that includes file1.html</h1>
658 <div class="target">
659 Some added stuff.
660 Some content.
661 </div>
662 </body>
663 </html>
664 """, tmpl.generate().render())
665 finally:
666 shutil.rmtree(dirname)
667
614 668
615 def suite(): 669 def suite():
616 suite = unittest.TestSuite() 670 suite = unittest.TestSuite()
617 suite.addTest(doctest.DocTestSuite(MarkupTemplate.__module__)) 671 suite.addTest(doctest.DocTestSuite(MarkupTemplate.__module__))
618 suite.addTest(unittest.makeSuite(MarkupTemplateTestCase, 'test')) 672 suite.addTest(unittest.makeSuite(MarkupTemplateTestCase, 'test'))
Copyright (C) 2012-2017 Edgewall Software