Skip to content

Commit 928d735

Browse files
[3.8] gh-117187: Fix XML tests for vanilla Expat <2.6.0 (GH-117203) (#117248)
This fixes XML unittest fallout from the #115398 security fix. When configured using `--with-system-expat` on systems with older pre 2.6.0 versions of libexpat, our unittests were failing. (cherry picked from commit 9f74e86) Co-authored-by: Sebastian Pipping <sebastian@pipping.org>
1 parent 95c340a commit 928d735

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

Lib/test/test_sax.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1207,10 +1207,10 @@ def test_expat_incremental_reset(self):
12071207

12081208
self.assertEqual(result.getvalue(), start + b"<doc>text</doc>")
12091209

1210+
@unittest.skipIf(pyexpat.version_info < (2, 6, 0),
1211+
f'Expat {pyexpat.version_info} does not '
1212+
'support reparse deferral')
12101213
def test_flush_reparse_deferral_enabled(self):
1211-
if pyexpat.version_info < (2, 6, 0):
1212-
self.skipTest(f'Expat {pyexpat.version_info} does not support reparse deferral')
1213-
12141214
result = BytesIO()
12151215
xmlgen = XMLGenerator(result)
12161216
parser = create_parser()
@@ -1243,8 +1243,8 @@ def test_flush_reparse_deferral_disabled(self):
12431243

12441244
if pyexpat.version_info >= (2, 6, 0):
12451245
parser._parser.SetReparseDeferralEnabled(False)
1246+
self.assertEqual(result.getvalue(), start) # i.e. no elements started
12461247

1247-
self.assertEqual(result.getvalue(), start) # i.e. no elements started
12481248
self.assertFalse(parser._parser.GetReparseDeferralEnabled())
12491249

12501250
parser.flush()

Lib/test/test_xml_etree.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1494,11 +1494,10 @@ def test_unknown_event(self):
14941494
with self.assertRaises(ValueError):
14951495
ET.XMLPullParser(events=('start', 'end', 'bogus'))
14961496

1497+
@unittest.skipIf(pyexpat.version_info < (2, 6, 0),
1498+
f'Expat {pyexpat.version_info} does not '
1499+
'support reparse deferral')
14971500
def test_flush_reparse_deferral_enabled(self):
1498-
if pyexpat.version_info < (2, 6, 0):
1499-
self.skipTest(f'Expat {pyexpat.version_info} does not '
1500-
'support reparse deferral')
1501-
15021501
parser = ET.XMLPullParser(events=('start', 'end'))
15031502

15041503
for chunk in ("<doc", ">"):
@@ -1530,8 +1529,8 @@ def test_flush_reparse_deferral_disabled(self):
15301529
self.skipTest(f'XMLParser.(Get|Set)ReparseDeferralEnabled '
15311530
'methods not available in C')
15321531
parser._parser._parser.SetReparseDeferralEnabled(False)
1532+
self.assert_event_tags(parser, []) # i.e. no elements started
15331533

1534-
self.assert_event_tags(parser, []) # i.e. no elements started
15351534
if ET is pyET:
15361535
self.assertFalse(parser._parser._parser.GetReparseDeferralEnabled())
15371536

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix XML tests for vanilla Expat <2.6.0.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy