Edgewall Software

Ticket #80: unit_test_xi_fallback-r462.diff

File unit_test_xi_fallback-r462.diff, 1.8 KB (added by cboos, 7 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__))