from xml.sax import make_parser, ContentHandler from StringIO import StringIO class EmptyParser(ContentHandler): pass empty_parser = EmptyParser() class TestParser(ContentHandler): def __del__(self): print "TestParser destructed." def startElement(self, name, attrs): pass def endElement(self, name): pass def characters(name, chars): pass def test1(): for i in range(10): parser = make_parser() parser.setContentHandler(TestParser()) parser.feed("") def test2(): for i in range(10): parser = make_parser() parser.setContentHandler(TestParser()) parser.feed("") parser.setContentHandler(empty_parser) if __name__ == '__main__': print "This is a test of an apparent XML memory leak." print "Test1:" test1() print "\n\n"; print "Test2:" test2()