]> granicus.if.org Git - python/commitdiff
#15970: xml.etree.ElementTree now serializes correctly the empty HTML elements "meta...
authorEzio Melotti <ezio.melotti@gmail.com>
Wed, 19 Sep 2012 05:19:12 +0000 (08:19 +0300)
committerEzio Melotti <ezio.melotti@gmail.com>
Wed, 19 Sep 2012 05:19:12 +0000 (08:19 +0300)
Lib/test/test_xml_etree.py
Lib/xml/etree/ElementTree.py
Misc/NEWS

index b7a996c29ca27a77029df0d27e76cde63bb000e5..3092f3bc11ed5080c6cedd4f647ab8d833d88e0a 100644 (file)
@@ -1851,6 +1851,26 @@ def check_issue10777():
     >>> ET.register_namespace('test10777', 'http://myuri/')
     """
 
+def check_html_empty_elems_serialization(self):
+    # issue 15970
+    # from http://www.w3.org/TR/html401/index/elements.html
+    """
+
+    >>> empty_elems = ['AREA', 'BASE', 'BASEFONT', 'BR', 'COL', 'FRAME', 'HR',
+    ...                'IMG', 'INPUT', 'ISINDEX', 'LINK', 'META', 'PARAM']
+    >>> elems = ''.join('<%s />' % elem for elem in empty_elems)
+    >>> serialize(ET.XML('<html>%s</html>' % elems), method='html')
+    '<html><AREA><BASE><BASEFONT><BR><COL><FRAME><HR><IMG><INPUT><ISINDEX><LINK><META><PARAM></html>'
+    >>> serialize(ET.XML('<html>%s</html>' % elems.lower()), method='html')
+    '<html><area><base><basefont><br><col><frame><hr><img><input><isindex><link><meta><param></html>'
+    >>> elems = ''.join('<%s></%s>' % (elem, elem) for elem in empty_elems)
+    >>> serialize(ET.XML('<html>%s</html>' % elems), method='html')
+    '<html><AREA><BASE><BASEFONT><BR><COL><FRAME><HR><IMG><INPUT><ISINDEX><LINK><META><PARAM></html>'
+    >>> serialize(ET.XML('<html>%s</html>' % elems.lower()), method='html')
+    '<html><area><base><basefont><br><col><frame><hr><img><input><isindex><link><meta><param></html>'
+
+    """
+
 # --------------------------------------------------------------------
 
 
index f94c48c09c7d205a4ff22e86161d592b4b08d14c..9742f32f38101486d7690edfe8c7f94a47067f08 100644 (file)
@@ -983,7 +983,7 @@ def _serialize_xml(write, elem, qnames, namespaces):
         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)
index 29e2c1956562292bedac7b682caf4f4ec3efd91c..5113ec08ce999f1f5a2bedd2c9b7190c8ed258c5 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -120,6 +120,9 @@ Core and Builtins
 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.