From c90111f9ab617a1dbdde8952a4b81e6eecc36e7c Mon Sep 17 00:00:00 2001 From: Ezio Melotti Date: Wed, 19 Sep 2012 08:19:12 +0300 Subject: #15970: xml.etree.ElementTree now serializes correctly the empty HTML elements "meta" and "param". --- Lib/test/test_xml_etree.py | 20 ++++++++++++++++++++ Lib/xml/etree/ElementTree.py | 2 +- Misc/NEWS | 3 +++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index b7a996c..3092f3b 100644 --- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -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('%s' % elems), method='html') + '

' + >>> serialize(ET.XML('%s' % elems.lower()), method='html') + '

' + >>> elems = ''.join('<%s>' % (elem, elem) for elem in empty_elems) + >>> serialize(ET.XML('%s' % elems), method='html') + '

' + >>> serialize(ET.XML('%s' % elems.lower()), method='html') + '

' + + """ + # -------------------------------------------------------------------- diff --git a/Lib/xml/etree/ElementTree.py b/Lib/xml/etree/ElementTree.py index f94c48c..9742f32 100644 --- a/Lib/xml/etree/ElementTree.py +++ b/Lib/xml/etree/ElementTree.py @@ -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) diff --git a/Misc/NEWS b/Misc/NEWS index 29e2c19..5113ec0 100644 --- 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. -- cgit v0.12