[docs] ElementTree: Document handling processing instructions (issue 20375)

Nikolaus at rath.org Nikolaus at rath.org
Thu Mar 20 03:44:23 CET 2014


Reviewers: Claudiu.Popa,


http://bugs.python.org/review/20375/diff/10762/Lib/test/test_xml_etree.py
File Lib/test/test_xml_etree.py (right):

http://bugs.python.org/review/20375/diff/10762/Lib/test/test_xml_etree.py#newcode1628
Lib/test/test_xml_etree.py:1628:
self.assertTrue(len(tree2.getroot().getchildren()) == 0)
On 2014/03/19 11:48:55, Claudiu.Popa wrote:
> Why not self.assertEqual(len(tree..), 0)?

Done.

http://bugs.python.org/review/20375/diff/10762/Lib/test/test_xml_etree.py#newcode1639
Lib/test/test_xml_etree.py:1639: self.assertTrue(b'<!--not to be
rendered-->' in bytes(stream.getbuffer()))
On 2014/03/19 11:48:55, Claudiu.Popa wrote:
> self.assertIn(b'..', bytes(..)) is clearer.

Done.

http://bugs.python.org/review/20375/diff/10762/Lib/test/test_xml_etree.py#newcode1644
Lib/test/test_xml_etree.py:1644:
self.assertTrue(len(tree2.getroot().getchildren()) == 0)
On 2014/03/19 11:48:55, Claudiu.Popa wrote:
> As above.

Done.



Please review this at http://bugs.python.org/review/20375/

Affected files:
  Lib/test/test_xml_etree.py


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'<?verb extra data?>' 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'<!--not to be rendered-->' in bytes(stream.getbuffer())) 
+
+        # ..but skipped when parsing XML
+        stream.seek(0)
+        tree2 = ET.parse(stream)
+        self.assertTrue(len(tree2.getroot().getchildren()) == 0)
+        
 # --------------------------------------------------------------------
 
 




More information about the docs mailing list