summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2013-07-04 23:41:30 (GMT)
committerChristian Heimes <christian@cheimes.de>2013-07-04 23:41:30 (GMT)
commit20d46692fc95dfa4719131a3b3ce2fdaee77f280 (patch)
tree03298ecb59f665d45526665af299c6f48992127d
parent0c503c2c7f788beb486c3edf8f7232bcff2f3f08 (diff)
downloadcpython-20d46692fc95dfa4719131a3b3ce2fdaee77f280.zip
cpython-20d46692fc95dfa4719131a3b3ce2fdaee77f280.tar.gz
cpython-20d46692fc95dfa4719131a3b3ce2fdaee77f280.tar.bz2
Issue #18347: ElementTree's html serializer now preserves the case of closing tags.
-rw-r--r--Lib/test/test_xml_etree.py10
-rw-r--r--Lib/xml/etree/ElementTree.py6
-rw-r--r--Misc/NEWS3
3 files changed, 16 insertions, 3 deletions
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py
index 4e161ca..4f06d20 100644
--- a/Lib/test/test_xml_etree.py
+++ b/Lib/test/test_xml_etree.py
@@ -1769,6 +1769,16 @@ def bug_200709_iter_comment():
"""
+def bug_18347():
+ """
+
+ >>> e = ET.XML('<html><CamelCase>text</CamelCase></html>')
+ >>> serialize(e)
+ '<html><CamelCase>text</CamelCase></html>'
+ >>> serialize(e, method="html")
+ '<html><CamelCase>text</CamelCase></html>'
+ """
+
# --------------------------------------------------------------------
# reported on bugs.python.org
diff --git a/Lib/xml/etree/ElementTree.py b/Lib/xml/etree/ElementTree.py
index bb468cd..9f3e75d 100644
--- a/Lib/xml/etree/ElementTree.py
+++ b/Lib/xml/etree/ElementTree.py
@@ -988,15 +988,15 @@ def _serialize_html(write, elem, encoding, qnames, namespaces):
# FIXME: handle boolean attributes
write(" %s=\"%s\"" % (qnames[k], v))
write(">")
- tag = tag.lower()
+ ltag = tag.lower()
if text:
- if tag == "script" or tag == "style":
+ if ltag == "script" or ltag == "style":
write(_encode(text, encoding))
else:
write(_escape_cdata(text, encoding))
for e in elem:
_serialize_html(write, e, encoding, qnames, None)
- if tag not in HTML_EMPTY:
+ if ltag not in HTML_EMPTY:
write("</" + tag + ">")
if elem.tail:
write(_escape_cdata(elem.tail, encoding))
diff --git a/Misc/NEWS b/Misc/NEWS
index fec41b7..8114b69 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -24,6 +24,9 @@ Core and Builtins
Library
-------
+- Issue #18347: ElementTree's html serializer now preserves the case of
+ closing tags.
+
- Issue #17261: Ensure multiprocessing's proxies use proper address.
- Issue #17097: Make multiprocessing ignore EINTR.