diff options
author | Ezio Melotti <ezio.melotti@gmail.com> | 2012-09-19 05:11:03 (GMT) |
---|---|---|
committer | Ezio Melotti <ezio.melotti@gmail.com> | 2012-09-19 05:11:03 (GMT) |
commit | 6d6fb3aa9f641c133472f2bbb7565dde6e712e87 (patch) | |
tree | ffa205e229b5110979b835a46c5095cf4b75c32f | |
parent | ba372a59d1fc9839a65d9ab3fef372acd4e5ee60 (diff) | |
download | cpython-6d6fb3aa9f641c133472f2bbb7565dde6e712e87.zip cpython-6d6fb3aa9f641c133472f2bbb7565dde6e712e87.tar.gz cpython-6d6fb3aa9f641c133472f2bbb7565dde6e712e87.tar.bz2 |
#15970: xml.etree.ElementTree now serializes correctly the empty HTML elements "meta" and "param".
-rw-r--r-- | Lib/test/test_xml_etree.py | 20 | ||||
-rw-r--r-- | Lib/xml/etree/ElementTree.py | 2 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
3 files changed, 24 insertions, 1 deletions
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index f1a774a..4e161ca 100644 --- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -1822,6 +1822,26 @@ def check_issue6565(): """ +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>' + + """ + # -------------------------------------------------------------------- diff --git a/Lib/xml/etree/ElementTree.py b/Lib/xml/etree/ElementTree.py index 2b0cf0c..d8ec67a 100644 --- a/Lib/xml/etree/ElementTree.py +++ b/Lib/xml/etree/ElementTree.py @@ -945,7 +945,7 @@ def _serialize_xml(write, elem, encoding, qnames, namespaces): write(_escape_cdata(elem.tail, encoding)) 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) @@ -103,6 +103,9 @@ Core and Builtins Library ------- +- Issue #15970: xml.etree.ElementTree now serializes correctly the empty HTML + elements 'meta' and 'param'. + - Issue #15676: Now "mmap" check for empty files before doing the offset check. Patch by Steven Willis. |