diff options
Diffstat (limited to 'Lib/test/test_io.py')
-rw-r--r-- | Lib/test/test_io.py | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index f0e79312..0c37cc7 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -574,6 +574,22 @@ class StatefulIncrementalDecoder(codecs.IncrementalDecoder): self.buffer = bytearray() return output + codecEnabled = False + + @classmethod + def lookupTestDecoder(cls, name): + if cls.codecEnabled and name == 'test_decoder': + return codecs.CodecInfo( + name='test_decoder', encode=None, decode=None, + incrementalencoder=None, + streamreader=None, streamwriter=None, + incrementaldecoder=cls) + +# Register the previous decoder for testing. +# Disabled by default, tests will enable it. +codecs.register(StatefulIncrementalDecoder.lookupTestDecoder) + + class StatefulIncrementalDecoderTest(unittest.TestCase): """ Make sure the StatefulIncrementalDecoder actually works. @@ -899,14 +915,6 @@ class TextIOWrapperTest(unittest.TestCase): def testSeekAndTell(self): """Test seek/tell using the StatefulIncrementalDecoder.""" - def lookupTestDecoder(name): - if self.codecEnabled and name == 'test_decoder': - return codecs.CodecInfo( - name='test_decoder', encode=None, decode=None, - incrementalencoder=None, - streamreader=None, streamwriter=None, - incrementaldecoder=StatefulIncrementalDecoder) - def testSeekAndTellWithData(data, min_pos=0): """Tell/seek to various points within a data stream and ensure that the decoded data returned by read() is consistent.""" @@ -927,9 +935,8 @@ class TextIOWrapperTest(unittest.TestCase): self.assertEquals(f.read(), decoded[i:]) f.close() - # Register a special incremental decoder for testing. - codecs.register(lookupTestDecoder) - self.codecEnabled = 1 + # Enable the test decoder. + StatefulIncrementalDecoder.codecEnabled = 1 # Run the tests. try: @@ -948,7 +955,7 @@ class TextIOWrapperTest(unittest.TestCase): # Ensure our test decoder won't interfere with subsequent tests. finally: - self.codecEnabled = 0 + StatefulIncrementalDecoder.codecEnabled = 0 def testEncodedWrites(self): data = "1234567890" |