Patch test_sax.py

This commit is contained in:
ShaharNaveh
2026-02-27 10:05:21 +01:00
parent fa68faa2e5
commit eed53cbe9d

39
Lib/test/test_sax.py vendored
View File

@@ -133,6 +133,7 @@ class ParseTest(unittest.TestCase):
parse(f, XMLGenerator(result, 'utf-8'))
self.assertEqual(result.getvalue(), xml_str(self.data, 'utf-8'))
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_parse_text(self):
encodings = ('us-ascii', 'iso-8859-1', 'utf-8',
'utf-16', 'utf-16le', 'utf-16be')
@@ -146,6 +147,7 @@ class ParseTest(unittest.TestCase):
with open(TESTFN, 'r', encoding=encoding) as f:
self.check_parse(f)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_parse_bytes(self):
# UTF-8 is default encoding, US-ASCII is compatible with UTF-8,
# UTF-16 is autodetected
@@ -188,10 +190,12 @@ class ParseTest(unittest.TestCase):
with self.assertRaises(SAXException):
self.check_parse(f)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_parse_path_object(self):
make_xml_file(self.data, 'utf-8', None)
self.check_parse(FakePath(TESTFN))
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_parse_InputSource(self):
# accept data without declared but with explicitly specified encoding
make_xml_file(self.data, 'iso-8859-1', None)
@@ -201,6 +205,7 @@ class ParseTest(unittest.TestCase):
input.setEncoding('iso-8859-1')
self.check_parse(input)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_parse_close_source(self):
builtin_open = open
fileobj = None
@@ -216,12 +221,14 @@ class ParseTest(unittest.TestCase):
self.check_parse(TESTFN)
self.assertTrue(fileobj.closed)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def check_parseString(self, s):
from xml.sax import parseString
result = StringIO()
parseString(s, XMLGenerator(result, 'utf-8'))
self.assertEqual(result.getvalue(), xml_str(self.data, 'utf-8'))
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_parseString_text(self):
encodings = ('us-ascii', 'iso-8859-1', 'utf-8',
'utf-16', 'utf-16le', 'utf-16be')
@@ -229,6 +236,7 @@ class ParseTest(unittest.TestCase):
self.check_parseString(xml_str(self.data, encoding))
self.check_parseString(self.data)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_parseString_bytes(self):
# UTF-8 is default encoding, US-ASCII is compatible with UTF-8,
# UTF-16 is autodetected
@@ -708,6 +716,7 @@ class XmlgenTest:
self.assertEqual(result.getvalue(),
self.xml('<my:a xmlns:my="qux" b="c"/>'))
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_5027_1(self):
# The xml prefix (as in xml:lang below) is reserved and bound by
# definition to http://www.w3.org/XML/1998/namespace. XMLGenerator had
@@ -882,6 +891,7 @@ class ExpatReaderTest(XmlTestBase):
# ===== XMLReader support
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_binary_file(self):
parser = create_parser()
result = BytesIO()
@@ -893,6 +903,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), xml_test_out)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_text_file(self):
parser = create_parser()
result = BytesIO()
@@ -904,6 +915,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), xml_test_out)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
@requires_nonascii_filenames
def test_expat_binary_file_nonascii(self):
fname = os_helper.TESTFN_UNICODE
@@ -919,6 +931,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), xml_test_out)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_binary_file_bytes_name(self):
fname = os.fsencode(TEST_XMLFILE)
parser = create_parser()
@@ -931,6 +944,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), xml_test_out)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_binary_file_int_name(self):
parser = create_parser()
result = BytesIO()
@@ -969,6 +983,7 @@ class ExpatReaderTest(XmlTestBase):
source.setSystemId(systemId)
return source
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_dtdhandler(self):
parser = create_parser()
handler = self.TestDTDHandler()
@@ -985,6 +1000,7 @@ class ExpatReaderTest(XmlTestBase):
[("GIF", "-//CompuServe//NOTATION Graphics Interchange Format 89a//EN", None)])
self.assertEqual(handler._entities, [("img", None, "expat.gif", "GIF")])
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_external_dtd_enabled(self):
# clear _opener global variable
self.addCleanup(urllib.request.urlcleanup)
@@ -1002,6 +1018,7 @@ class ExpatReaderTest(XmlTestBase):
resolver.entities, [(None, 'unsupported://non-existing')]
)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_external_dtd_default(self):
parser = create_parser()
resolver = self.TestEntityRecorder()
@@ -1023,6 +1040,7 @@ class ExpatReaderTest(XmlTestBase):
inpsrc.setByteStream(BytesIO(b"<entity/>"))
return inpsrc
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_entityresolver_enabled(self):
parser = create_parser()
parser.setFeature(feature_external_ges, True)
@@ -1039,6 +1057,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), start +
b"<doc><entity></entity></doc>")
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_entityresolver_default(self):
parser = create_parser()
self.assertEqual(parser.getFeature(feature_external_ges), False)
@@ -1065,6 +1084,7 @@ class ExpatReaderTest(XmlTestBase):
def startElementNS(self, name, qname, attrs):
self._attrs = attrs
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_attrs_empty(self):
parser = create_parser()
gather = self.AttrGatherer()
@@ -1075,6 +1095,7 @@ class ExpatReaderTest(XmlTestBase):
self.verify_empty_attrs(gather._attrs)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_attrs_wattr(self):
parser = create_parser()
gather = self.AttrGatherer()
@@ -1085,6 +1106,7 @@ class ExpatReaderTest(XmlTestBase):
self.verify_attrs_wattr(gather._attrs)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_nsattrs_empty(self):
parser = create_parser(1)
gather = self.AttrGatherer()
@@ -1095,6 +1117,7 @@ class ExpatReaderTest(XmlTestBase):
self.verify_empty_nsattrs(gather._attrs)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_nsattrs_wattr(self):
parser = create_parser(1)
gather = self.AttrGatherer()
@@ -1120,6 +1143,7 @@ class ExpatReaderTest(XmlTestBase):
# ===== InputSource support
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_inpsource_filename(self):
parser = create_parser()
result = BytesIO()
@@ -1130,6 +1154,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), xml_test_out)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_inpsource_sysid(self):
parser = create_parser()
result = BytesIO()
@@ -1140,6 +1165,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), xml_test_out)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
@requires_nonascii_filenames
def test_expat_inpsource_sysid_nonascii(self):
fname = os_helper.TESTFN_UNICODE
@@ -1155,6 +1181,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), xml_test_out)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_inpsource_byte_stream(self):
parser = create_parser()
result = BytesIO()
@@ -1168,6 +1195,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), xml_test_out)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_inpsource_character_stream(self):
parser = create_parser()
result = BytesIO()
@@ -1183,6 +1211,7 @@ class ExpatReaderTest(XmlTestBase):
# ===== IncrementalParser support
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_incremental(self):
result = BytesIO()
xmlgen = XMLGenerator(result)
@@ -1195,6 +1224,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), start + b"<doc></doc>")
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_incremental_reset(self):
result = BytesIO()
xmlgen = XMLGenerator(result)
@@ -1216,6 +1246,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), start + b"<doc>text</doc>")
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
@unittest.skipIf(pyexpat.version_info < (2, 6, 0),
f'Expat {pyexpat.version_info} does not '
'support reparse deferral')
@@ -1241,6 +1272,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), start + b"<doc></doc>")
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_flush_reparse_deferral_disabled(self):
result = BytesIO()
xmlgen = XMLGenerator(result)
@@ -1268,6 +1300,7 @@ class ExpatReaderTest(XmlTestBase):
# ===== Locator support
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_locator_noinfo(self):
result = BytesIO()
xmlgen = XMLGenerator(result)
@@ -1282,6 +1315,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(parser.getPublicId(), None)
self.assertEqual(parser.getLineNumber(), 1)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_locator_withinfo(self):
result = BytesIO()
xmlgen = XMLGenerator(result)
@@ -1292,6 +1326,7 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(parser.getSystemId(), TEST_XMLFILE)
self.assertEqual(parser.getPublicId(), None)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
@requires_nonascii_filenames
def test_expat_locator_withinfo_nonascii(self):
fname = os_helper.TESTFN_UNICODE
@@ -1315,6 +1350,7 @@ class ExpatReaderTest(XmlTestBase):
# ===========================================================================
class ErrorReportingTest(unittest.TestCase):
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_inpsource_location(self):
parser = create_parser()
parser.setContentHandler(ContentHandler()) # do nothing
@@ -1328,6 +1364,7 @@ class ErrorReportingTest(unittest.TestCase):
except SAXException as e:
self.assertEqual(e.getSystemId(), name)
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_expat_incomplete(self):
parser = create_parser()
parser.setContentHandler(ContentHandler()) # do nothing
@@ -1464,6 +1501,7 @@ class LexicalHandlerTest(unittest.TestCase):
self.end_of_dtd = False
self.comments = []
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_handlers(self):
class TestLexicalHandler(LexicalHandler):
def __init__(self, test_harness, *args, **kwargs):
@@ -1520,6 +1558,7 @@ class CDATAHandlerTest(unittest.TestCase):
self.chardata = []
self.in_cdata = False
@unittest.expectedFailure # TODO: RUSTPYTHON; AttributeError: 'xmlparser' object has no attribute 'SetParamEntityParsing'
def test_handlers(self):
class TestLexicalHandler(LexicalHandler):
def __init__(self, test_harness, *args, **kwargs):