diff genshi/template/tests/markup.py @ 1032:56fd1ca051af stable-0.7.x

Merge r1257 from trunk (fix for infinite template inlining).
author hodgestar
date Wed, 19 Mar 2014 13:54:59 +0000
parents 59463031d904
children
line wrap: on
line diff
--- a/genshi/template/tests/markup.py
+++ b/genshi/template/tests/markup.py
@@ -580,7 +580,33 @@
         finally:
             shutil.rmtree(dirname)
 
-    def test_allow_exec_false(self): 
+    def test_include_inline_recursive(self):
+        dirname = tempfile.mkdtemp(suffix='genshi_test')
+        try:
+            file1 = open(os.path.join(dirname, 'tmpl1.html'), 'w')
+            try:
+                file1.write(
+                    '<div xmlns:xi="http://www.w3.org/2001/XInclude"'
+                    '                xmlns:py="http://genshi.edgewall.org/">'
+                    '$depth'
+                    '<py:with vars="depth = depth + 1">'
+                    '<xi:include href="tmpl1.html"'
+                    '            py:if="depth &lt; 3"/>'
+                    '</py:with>'
+                    '</div>'
+                )
+            finally:
+                file1.close()
+
+            loader = TemplateLoader([dirname], auto_reload=False)
+            tmpl = loader.load(os.path.join(dirname, 'tmpl1.html'))
+            self.assertEqual(
+                "<div>0<div>1<div>2</div></div></div>",
+                tmpl.generate(depth=0).render(encoding=None))
+        finally:
+            shutil.rmtree(dirname)
+
+    def test_allow_exec_false(self):
         xml = ("""<?python
           title = "A Genshi Template"
           ?>
Copyright (C) 2012-2017 Edgewall Software