del parser
del subparser
+ def test_subparser_inherits_reparse_deferral(self):
+ for enabled in (True, False):
+ parser = expat.ParserCreate()
+ parser.SetReparseDeferralEnabled(enabled)
+ subparser = parser.ExternalEntityParserCreate(None)
+ self.assertEqual(subparser.GetReparseDeferralEnabled(), enabled)
+
class ExternalEntityParserCreateErrorTest(unittest.TestCase):
"""ExternalEntityParserCreate error paths should not crash or leak
--- /dev/null
+Fix :meth:`!ExternalEntityParserCreate` not propagating the reparse-deferral
+setting to the subparser, which left :meth:`!GetReparseDeferralEnabled`
+returning an uninitialized value. Patch by tonghuaroot.
new_parser->specified_attributes = self->specified_attributes;
new_parser->in_callback = 0;
new_parser->ns_prefixes = self->ns_prefixes;
+ new_parser->reparse_deferral_enabled = self->reparse_deferral_enabled;
new_parser->itself = XML_ExternalEntityParserCreate(self->itself, context,
encoding);
// The new subparser will make use of the parent XML_Parser inside of Expat.