bpo-41919: Avoid resource leak in test_io (GH-22973)
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
This commit is contained in:
parent
df8d4c83a6
commit
14cdc215aa
|
@ -2519,15 +2519,17 @@ class StatefulIncrementalDecoder(codecs.IncrementalDecoder):
|
||||||
|
|
||||||
codecEnabled = False
|
codecEnabled = False
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def lookupTestDecoder(cls, name):
|
# bpo-41919: This method is separated from StatefulIncrementalDecoder to avoid a resource leak
|
||||||
if cls.codecEnabled and name == 'test_decoder':
|
# when registering codecs and cleanup functions.
|
||||||
|
def lookupTestDecoder(name):
|
||||||
|
if StatefulIncrementalDecoder.codecEnabled and name == 'test_decoder':
|
||||||
latin1 = codecs.lookup('latin-1')
|
latin1 = codecs.lookup('latin-1')
|
||||||
return codecs.CodecInfo(
|
return codecs.CodecInfo(
|
||||||
name='test_decoder', encode=latin1.encode, decode=None,
|
name='test_decoder', encode=latin1.encode, decode=None,
|
||||||
incrementalencoder=None,
|
incrementalencoder=None,
|
||||||
streamreader=None, streamwriter=None,
|
streamreader=None, streamwriter=None,
|
||||||
incrementaldecoder=cls)
|
incrementaldecoder=StatefulIncrementalDecoder)
|
||||||
|
|
||||||
|
|
||||||
class StatefulIncrementalDecoderTest(unittest.TestCase):
|
class StatefulIncrementalDecoderTest(unittest.TestCase):
|
||||||
|
@ -2579,9 +2581,8 @@ class TextIOWrapperTest(unittest.TestCase):
|
||||||
self.testdata = b"AAA\r\nBBB\rCCC\r\nDDD\nEEE\r\n"
|
self.testdata = b"AAA\r\nBBB\rCCC\r\nDDD\nEEE\r\n"
|
||||||
self.normalized = b"AAA\nBBB\nCCC\nDDD\nEEE\n".decode("ascii")
|
self.normalized = b"AAA\nBBB\nCCC\nDDD\nEEE\n".decode("ascii")
|
||||||
os_helper.unlink(os_helper.TESTFN)
|
os_helper.unlink(os_helper.TESTFN)
|
||||||
codecs.register(StatefulIncrementalDecoder.lookupTestDecoder)
|
codecs.register(lookupTestDecoder)
|
||||||
self.addCleanup(codecs.unregister,
|
self.addCleanup(codecs.unregister, lookupTestDecoder)
|
||||||
StatefulIncrementalDecoder.lookupTestDecoder)
|
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
os_helper.unlink(os_helper.TESTFN)
|
os_helper.unlink(os_helper.TESTFN)
|
||||||
|
|
Loading…
Reference in New Issue