Edgewall Software

Ticket #80: unit_test_xi_fallback-r462.diff

File unit_test_xi_fallback-r462.diff, 1.8 KB (added by cboos, 9 years ago)

Unit-test demonstrating the issue

  • genshi/template/tests/loader.py

     
    189189        loader = TemplateLoader([self.dirname], default_encoding='utf-8')
    190190        loader.load('tmpl.html', encoding='iso-8859-1')
    191191
     192    def test_fallback_when_include_found(self):
     193        file1 = open(os.path.join(self.dirname, 'tmpl1.html'), 'w')
     194        try:
     195            file1.write("""<div>Included</div>""")
     196        finally:
     197            file1.close()
    192198
     199        file2 = open(os.path.join(self.dirname, 'tmpl2.html'), 'w')
     200        try:
     201            file2.write("""<html xmlns:xi="http://www.w3.org/2001/XInclude">
     202              <xi:include href="tmpl1.html"><xi:fallback>
     203                Missing</xi:fallback></xi:include>
     204            </html>""")
     205        finally:
     206            file2.close()
     207
     208        loader = TemplateLoader([self.dirname])
     209        tmpl = loader.load('tmpl2.html')
     210        self.assertEqual("""<html>
     211              <div>Included</div>
     212            </html>""", tmpl.generate().render())
     213
     214    def test_fallback_when_include_not_found(self):
     215        file2 = open(os.path.join(self.dirname, 'tmpl2.html'), 'w')
     216        try:
     217            file2.write("""<html xmlns:xi="http://www.w3.org/2001/XInclude">
     218              <xi:include href="tmpl1.html"><xi:fallback>
     219              Missing</xi:fallback></xi:include>
     220            </html>""")
     221        finally:
     222            file2.close()
     223
     224        loader = TemplateLoader([self.dirname])
     225        tmpl = loader.load('tmpl2.html')
     226        self.assertEqual("""<html>
     227              Missing
     228            </html>""", tmpl.generate().render())
     229
    193230def suite():
    194231    suite = unittest.TestSuite()
    195232    suite.addTest(doctest.DocTestSuite(TemplateLoader.__module__))