(self)
| 3789 | self.assertEqual(a.text, "texttail") |
| 3790 | |
| 3791 | def test_late_tail_mix_pi_comments(self): |
| 3792 | # Issue #37399: The tail of an ignored comment could overwrite the text before it. |
| 3793 | # Test appending tails to comments/pis. |
| 3794 | class TreeBuilderSubclass(ET.TreeBuilder): |
| 3795 | pass |
| 3796 | |
| 3797 | xml = "<a>text<?pi1?> <!-- comment -->\n<?pi2?>tail</a>" |
| 3798 | parser = ET.XMLParser(target=ET.TreeBuilder(insert_comments=True)) |
| 3799 | parser.feed(xml) |
| 3800 | a = parser.close() |
| 3801 | self.assertEqual(a[0].text, ' comment ') |
| 3802 | self.assertEqual(a[0].tail, '\ntail') |
| 3803 | self.assertEqual(a.text, "text ") |
| 3804 | |
| 3805 | parser = ET.XMLParser(target=TreeBuilderSubclass(insert_comments=True)) |
| 3806 | parser.feed(xml) |
| 3807 | a = parser.close() |
| 3808 | self.assertEqual(a[0].text, ' comment ') |
| 3809 | self.assertEqual(a[0].tail, '\ntail') |
| 3810 | self.assertEqual(a.text, "text ") |
| 3811 | |
| 3812 | xml = "<a>text<!-- comment -->\n<?pi data?>tail</a>" |
| 3813 | parser = ET.XMLParser(target=ET.TreeBuilder(insert_pis=True)) |
| 3814 | parser.feed(xml) |
| 3815 | a = parser.close() |
| 3816 | self.assertEqual(a[0].text, 'pi data') |
| 3817 | self.assertEqual(a[0].tail, 'tail') |
| 3818 | self.assertEqual(a.text, "text\n") |
| 3819 | |
| 3820 | parser = ET.XMLParser(target=TreeBuilderSubclass(insert_pis=True)) |
| 3821 | parser.feed(xml) |
| 3822 | a = parser.close() |
| 3823 | self.assertEqual(a[0].text, 'pi data') |
| 3824 | self.assertEqual(a[0].tail, 'tail') |
| 3825 | self.assertEqual(a.text, "text\n") |
| 3826 | |
| 3827 | def test_treebuilder_elementfactory_none(self): |
| 3828 | parser = ET.XMLParser(target=ET.TreeBuilder(element_factory=None)) |
nothing calls this directly
no test coverage detected