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 @@ -1612,7 +1612,37 @@ ET.register_namespace('test10777', 'http://myuri/') ET.register_namespace('test10777', 'http://myuri/') - + def test_pi_treatment(self): + root = ET.Element('body', { 'text': 'some text'}) + root.append(ET.ProcessingInstruction('verb', 'extra data')) + tree = ET.ElementTree(root) + stream = io.BytesIO() + tree.write(stream) + + # PIs are serialized to XML.. + self.assertTrue(b'' in bytes(stream.getbuffer())) + + # ..but skipped when parsing XML + stream.seek(0) + tree2 = ET.parse(stream) + self.assertTrue(len(tree2.getroot().getchildren()) == 0) + + + def test_comment_treatment(self): + root = ET.Element('body', { 'text': 'some text'}) + root.append(ET.Comment('not to be rendered')) + tree = ET.ElementTree(root) + stream = io.BytesIO() + tree.write(stream) + + # PIs are serialized to XML.. + self.assertTrue(b'' in bytes(stream.getbuffer())) + + # ..but skipped when parsing XML + stream.seek(0) + tree2 = ET.parse(stream) + self.assertTrue(len(tree2.getroot().getchildren()) == 0) + # --------------------------------------------------------------------