[Python-checkins] cpython (merge 3.2 -> default): #15970: merge with 3.2.

ezio.melotti python-checkins at python.org
Wed Sep 19 07:26:43 CEST 2012


http://hg.python.org/cpython/rev/19c74cadea95
changeset:   79052:19c74cadea95
parent:      79049:650e1857a91e
parent:      79051:17c528cff63f
user:        Ezio Melotti <ezio.melotti at gmail.com>
date:        Wed Sep 19 08:25:01 2012 +0300
summary:
  #15970: merge with 3.2.

files:
  Lib/test/test_xml_etree.py   |  12 ++++++++++++
  Lib/xml/etree/ElementTree.py |   2 +-
  Misc/NEWS                    |   3 +++
  3 files changed, 16 insertions(+), 1 deletions(-)


diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py
--- a/Lib/test/test_xml_etree.py
+++ b/Lib/test/test_xml_etree.py
@@ -1809,6 +1809,18 @@
         mye = MyElement('joe')
         self.assertEqual(mye.newmethod(), 'joe')
 
+    def test_html_empty_elems_serialization(self):
+        # issue 15970
+        # from http://www.w3.org/TR/html401/index/elements.html
+        for element in ['AREA', 'BASE', 'BASEFONT', 'BR', 'COL', 'FRAME', 'HR',
+                        'IMG', 'INPUT', 'ISINDEX', 'LINK', 'META', 'PARAM']:
+            for elem in [element, element.lower()]:
+                expected = '<%s>' % elem
+                serialized = serialize(ET.XML('<%s />' % elem), method='html')
+                self.assertEqual(serialized, expected)
+                serialized = serialize(ET.XML('<%s></%s>' % (elem,elem)),
+                                       method='html')
+                self.assertEqual(serialized, expected)
 
 class ElementIterTest(unittest.TestCase):
     def _ilist(self, elem, tag=None):
diff --git a/Lib/xml/etree/ElementTree.py b/Lib/xml/etree/ElementTree.py
--- a/Lib/xml/etree/ElementTree.py
+++ b/Lib/xml/etree/ElementTree.py
@@ -995,7 +995,7 @@
         write(_escape_cdata(elem.tail))
 
 HTML_EMPTY = ("area", "base", "basefont", "br", "col", "frame", "hr",
-              "img", "input", "isindex", "link", "meta" "param")
+              "img", "input", "isindex", "link", "meta", "param")
 
 try:
     HTML_EMPTY = set(HTML_EMPTY)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -32,6 +32,9 @@
 Library
 -------
 
+- Issue #15970: xml.etree.ElementTree now serializes correctly the empty HTML
+  elements 'meta' and 'param'.
+
 - Issue #15842: the SocketIO.{readable,writable,seekable} methods now
   raise ValueError when the file-like object is closed.  Patch by Alessandro
   Moura.

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list