[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