changeset 920:f4bf11c716cc experimental-py3k

Fix handling of QNames with leading open curly braces. See Genshi ticket #413.
author hodgestar
date Mon, 29 Nov 2010 20:20:56 +0000
parents d85416d3a26c
children 178c32ec7700
files genshi/core.py genshi/tests/core.py
diffstat 2 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/genshi/core.py
+++ b/genshi/core.py
@@ -722,7 +722,8 @@
         if type(qname) is cls:
             return qname
 
-        parts = qname.lstrip('{').split('}', 1)
+        qname = qname.lstrip('{')
+        parts = qname.split('}', 1)
         if len(parts) > 1:
             self = unicode.__new__(cls, '{%s' % qname)
             self.namespace, self.localname = map(unicode, parts)
--- a/genshi/tests/core.py
+++ b/genshi/tests/core.py
@@ -234,6 +234,13 @@
         self.assertEquals('http://www.example.org/namespace', qname.namespace)
         self.assertEquals('elem', qname.localname)
 
+    def test_curly_brace_equality(self):
+        qname1 = QName('{http://www.example.org/namespace}elem')
+        qname2 = QName('http://www.example.org/namespace}elem')
+        self.assertEqual(qname1.namespace, qname2.namespace)
+        self.assertEqual(qname1.localname, qname2.localname)
+        self.assertEqual(qname1, qname2)
+
 
 def suite():
     suite = unittest.TestSuite()
Copyright (C) 2012-2017 Edgewall Software