Skip to content

Commit 474411f

Browse files
Add more tests for processing instructions
1 parent 452480d commit 474411f

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

Lib/test/test_xml_etree.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1389,11 +1389,14 @@ def test_attlist_default(self):
13891389

13901390
class XMLValidationTest(unittest.TestCase):
13911391

1392-
def check(self, elem, expected=None):
1392+
def check(self, elem):
13931393
self.assertRaises(ValueError,
13941394
ET.tostring, elem, validate=True)
13951395
ET.tostring(elem) # no exception
13961396

1397+
def check_valid(self, elem, expected):
1398+
self.assertEqual(ET.tostring(elem, validate=True), expected)
1399+
13971400
def test_invalid_comment(self):
13981401
self.check(ET.Comment('a--b'))
13991402
self.check(ET.Comment(' B+, B, or B-'))
@@ -1403,13 +1406,19 @@ def test_invalid_processing_instruction(self):
14031406
self.check(ET.PI('0'))
14041407
self.check(ET.PI('a/b'))
14051408
self.check(ET.PI('foo\xa0bar'))
1409+
self.check(ET.PI('foo\fbar'))
14061410
self.check(ET.PI('xml'))
1411+
self.check(ET.PI('XML'))
14071412
self.check(ET.PI('xml', 'encoding="UTF-8"'))
14081413
self.check(ET.PI('foo', 'a?>b'))
14091414
self.check(ET.PI('foo', '\x00'))
14101415
self.check(ET.PI('foo', '\ud8ff'))
14111416
self.check(ET.PI('foo', '\ufffe'))
14121417

1418+
self.check_valid(ET.PI('foo\tbar'), b'<?foo\tbar?>')
1419+
self.check_valid(ET.PI('foo\nbar'), b'<?foo\nbar?>')
1420+
self.check_valid(ET.PI('foo\rbar'), b'<?foo\rbar?>')
1421+
14131422
def test_invalid_tag(self):
14141423
self.check(ET.Element(''))
14151424
self.check(ET.Element('0'))
@@ -1480,7 +1489,7 @@ def test_invalid_namespace_uri(self):
14801489

14811490
class HTMLValidationTest(unittest.TestCase):
14821491

1483-
def check(self, elem, expected=None):
1492+
def check(self, elem):
14841493
self.assertRaises(ValueError,
14851494
ET.tostring, elem, method='html', validate=True)
14861495
ET.tostring(elem, method='html') # no exception

0 commit comments

Comments
 (0)