[py-svn] commit/py: 3 new changesets

Bitbucket commits-noreply at bitbucket.org
Tue Mar 13 12:13:16 CET 2012


3 new commits in py:


https://bitbucket.org/hpk42/py/changeset/6903d3d93c9c/
changeset:   6903d3d93c9c
user:        RonnyPfannschmidt
date:        2012-03-13 09:37:00
summary:     add missing unicode transform to the xml serialization
affected #:  1 file

diff -r b418f117d16a960b5c276f06b51b4fe2d4ff3e80 -r 6903d3d93c9c961c87291279010c16ae97a939d3 py/_xmlgen.py
--- a/py/_xmlgen.py
+++ b/py/_xmlgen.py
@@ -52,7 +52,7 @@
     def unicode(self, indent=2):
         l = []
         SimpleUnicodeVisitor(l.append, indent).visit(self)
-        return "".join(l)
+        return u("").join(l)
 
     def __repr__(self):
         name = self.__class__.__name__



https://bitbucket.org/hpk42/py/changeset/1c3cea86db99/
changeset:   1c3cea86db99
user:        RonnyPfannschmidt
date:        2012-03-13 09:37:00
summary:     special case for tags in xmlgen to work for the object tag, fixes #13
affected #:  3 files

diff -r 6903d3d93c9c961c87291279010c16ae97a939d3 -r 1c3cea86db99cf048e3a4e708acd769ee5efd2ef CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,8 @@
+Changes between 1.4.7 and 1.4.8
+==================================================
+
+- fix issue 13 - correct handling of the tag name object in xmlgen
+
 Changes between 1.4.6 and 1.4.7
 ==================================================
 


diff -r 6903d3d93c9c961c87291279010c16ae97a939d3 -r 1c3cea86db99cf048e3a4e708acd769ee5efd2ef py/_xmlgen.py
--- a/py/_xmlgen.py
+++ b/py/_xmlgen.py
@@ -122,11 +122,13 @@
                 if visitmethod is not None:
                     break
             else:
-                visitmethod = self.object
+                visitmethod = self.__object
             self.cache[cls] = visitmethod
         visitmethod(node)
 
-    def object(self, obj):
+    # the default fallback handler is marked private
+    # to avoid clashes with the tag name object
+    def __object(self, obj):
         #self.write(obj)
         self.write(escape(unicode(obj)))
 


diff -r 6903d3d93c9c961c87291279010c16ae97a939d3 -r 1c3cea86db99cf048e3a4e708acd769ee5efd2ef testing/root/test_xmlgen.py
--- a/testing/root/test_xmlgen.py
+++ b/testing/root/test_xmlgen.py
@@ -134,3 +134,6 @@
     assert (h.unicode(indent=2) ==
             '<div><span>foo</span><span>bar</span></div>')
 
+def test_object_tags():
+    o = html.object(html.object())
+    assert o.unicode(indent=0) == '<object><object></object></object>'



https://bitbucket.org/hpk42/py/changeset/2c042feb5b3b/
changeset:   2c042feb5b3b
user:        RonnyPfannschmidt
date:        2012-03-13 09:37:00
summary:     xmlgen: support using raw for attribute values, fixes #14
affected #:  3 files

diff -r 1c3cea86db99cf048e3a4e708acd769ee5efd2ef -r 2c042feb5b3b1acebc7ceb565cac0a3b72d2a732 CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,7 @@
 ==================================================
 
 - fix issue 13 - correct handling of the tag name object in xmlgen
+- fix issue 14 - support raw attribute values in xmlgen
 
 Changes between 1.4.6 and 1.4.7
 ==================================================


diff -r 1c3cea86db99cf048e3a4e708acd769ee5efd2ef -r 2c042feb5b3b1acebc7ceb565cac0a3b72d2a732 py/_xmlgen.py
--- a/py/_xmlgen.py
+++ b/py/_xmlgen.py
@@ -184,7 +184,11 @@
             value = getattr(attrs, name)
             if name.endswith('_'):
                 name = name[:-1]
-            return ' %s="%s"' % (name, escape(unicode(value)))
+            if isinstance(value, raw):
+                insert = value.uniobj
+            else:
+                insert = escape(unicode(value))
+            return ' %s="%s"' % (name, insert)
 
     def getstyle(self, tag):
         """ return attribute list suitable for styling. """


diff -r 1c3cea86db99cf048e3a4e708acd769ee5efd2ef -r 2c042feb5b3b1acebc7ceb565cac0a3b72d2a732 testing/root/test_xmlgen.py
--- a/testing/root/test_xmlgen.py
+++ b/testing/root/test_xmlgen.py
@@ -1,6 +1,6 @@
 
 import py
-from py._xmlgen import unicode, html
+from py._xmlgen import unicode, html, raw
 
 class ns(py.xml.Namespace):
     pass
@@ -47,6 +47,10 @@
     assert x.attr.hello == 'world'
     assert unicode(x) == '<my hello="world"/>'
 
+def test_tag_with_raw_attr():
+    x = html.object(data=raw('&'))
+    assert unicode(x) == '<object data="&"></object>'
+
 def test_tag_nested():
     x = ns.hello(ns.world())
     unicode(x) # triggers parentifying

Repository URL: https://bitbucket.org/hpk42/py/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.



More information about the pytest-commit mailing list