mirror of
https://github.com/python/cpython.git
synced 2025-11-25 04:34:37 +00:00
gh-117187: Fix XML tests for vanilla Expat <2.6.0 (GH-117203)
This fixes XML unittest fallout from the https://github.com/python/cpython/issues/115398 security fix. When configured using `--with-system-expat` on systems with older pre 2.6.0 versions of libexpat, our unittests were failing. * sax|etree: Simplify Expat version guard where simplifiable Idea by Matěj Cepl * sax|etree: Fix reparse deferral tests for vanilla Expat <2.6.0 This *does not fix* the case of distros with an older version of libexpat with the 2.6.0 feature backported as a security fix. (Ubuntu is a known example of this with its libexpat1 2.5.0-2ubunutu0.1 package)
This commit is contained in:
parent
872e212378
commit
9f74e86c78
3 changed files with 9 additions and 9 deletions
|
|
@ -1215,10 +1215,10 @@ class ExpatReaderTest(XmlTestBase):
|
|||
|
||||
self.assertEqual(result.getvalue(), start + b"<doc>text</doc>")
|
||||
|
||||
@unittest.skipIf(pyexpat.version_info < (2, 6, 0),
|
||||
f'Expat {pyexpat.version_info} does not '
|
||||
'support reparse deferral')
|
||||
def test_flush_reparse_deferral_enabled(self):
|
||||
if pyexpat.version_info < (2, 6, 0):
|
||||
self.skipTest(f'Expat {pyexpat.version_info} does not support reparse deferral')
|
||||
|
||||
result = BytesIO()
|
||||
xmlgen = XMLGenerator(result)
|
||||
parser = create_parser()
|
||||
|
|
@ -1251,8 +1251,8 @@ class ExpatReaderTest(XmlTestBase):
|
|||
|
||||
if pyexpat.version_info >= (2, 6, 0):
|
||||
parser._parser.SetReparseDeferralEnabled(False)
|
||||
self.assertEqual(result.getvalue(), start) # i.e. no elements started
|
||||
|
||||
self.assertEqual(result.getvalue(), start) # i.e. no elements started
|
||||
self.assertFalse(parser._parser.GetReparseDeferralEnabled())
|
||||
|
||||
parser.flush()
|
||||
|
|
|
|||
|
|
@ -1707,11 +1707,10 @@ class XMLPullParserTest(unittest.TestCase):
|
|||
with self.assertRaises(ValueError):
|
||||
ET.XMLPullParser(events=('start', 'end', 'bogus'))
|
||||
|
||||
@unittest.skipIf(pyexpat.version_info < (2, 6, 0),
|
||||
f'Expat {pyexpat.version_info} does not '
|
||||
'support reparse deferral')
|
||||
def test_flush_reparse_deferral_enabled(self):
|
||||
if pyexpat.version_info < (2, 6, 0):
|
||||
self.skipTest(f'Expat {pyexpat.version_info} does not '
|
||||
'support reparse deferral')
|
||||
|
||||
parser = ET.XMLPullParser(events=('start', 'end'))
|
||||
|
||||
for chunk in ("<doc", ">"):
|
||||
|
|
@ -1743,8 +1742,8 @@ class XMLPullParserTest(unittest.TestCase):
|
|||
self.skipTest(f'XMLParser.(Get|Set)ReparseDeferralEnabled '
|
||||
'methods not available in C')
|
||||
parser._parser._parser.SetReparseDeferralEnabled(False)
|
||||
self.assert_event_tags(parser, []) # i.e. no elements started
|
||||
|
||||
self.assert_event_tags(parser, []) # i.e. no elements started
|
||||
if ET is pyET:
|
||||
self.assertFalse(parser._parser._parser.GetReparseDeferralEnabled())
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
Fix XML tests for vanilla Expat <2.6.0.
|
||||
Loading…
Add table
Add a link
Reference in a new issue