changeset 288:e09c5b7a64ae trunk

Fix bug introduced in [343], that broke the parsing of templates which declare the same namespace more than once in a nested fashion. Thanks to Graham Higgins for reporting the problem.
author cmlenz
date Fri, 13 Oct 2006 07:43:02 +0000
parents 1f5753346a75
children 94f9f2cc66c8
files ChangeLog genshi/template.py genshi/tests/template.py
diffstat 3 files changed, 20 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,14 @@
    be configured per instance.
 
 
+Version 0.3.3
+http://svn.edgewall.org/repos/genshi/tags/0.3.3/
+(?, from branches/stable/0.3.x)
+
+ * Fixed bug introduced in 0.3.2 that broke the parsing of templates which
+   declare the same namespace more than once in a nested fashion.
+
+
 Version 0.3.2
 http://svn.edgewall.org/repos/genshi/tags/0.3.2/
 (Oct 12 2006, from branches/stable/0.3.x)
--- a/genshi/template.py
+++ b/genshi/template.py
@@ -1007,8 +1007,8 @@
                     stream.append((kind, data, pos))
 
             elif kind is END_NS:
-                uri = ns_prefix.pop(data)
-                if uri != self.NAMESPACE:
+                uri = ns_prefix.pop(data, None)
+                if uri and uri != self.NAMESPACE:
                     stream.append((kind, data, pos))
 
             elif kind is START:
--- a/genshi/tests/template.py
+++ b/genshi/tests/template.py
@@ -1045,6 +1045,16 @@
         self.assertEqual("""<div>
         </div>""", str(tmpl.generate()))
 
+    def test_parse_with_same_namespace_nested(self):
+        tmpl = MarkupTemplate("""<div xmlns:py="http://genshi.edgewall.org/">
+          <span xmlns:py="http://genshi.edgewall.org/">
+          </span>
+        </div>""")
+        self.assertEqual("""<div>
+          <span>
+          </span>
+        </div>""", str(tmpl.generate()))
+
 
 class TextTemplateTestCase(unittest.TestCase):
     """Tests for text template processing."""
Copyright (C) 2012-2017 Edgewall Software