Issue #27959: Prevent ImportError from escaping codec search function

This commit is contained in:
Steve Dower 2016-09-07 09:31:52 -07:00
parent 2f8bfef158
commit fe8f4c9e87
2 changed files with 9 additions and 6 deletions

View File

@ -155,9 +155,13 @@ codecs.register(search_function)
if sys.platform == 'win32':
def _alias_mbcs(encoding):
import _bootlocale
if encoding == _bootlocale.getpreferredencoding(False):
import encodings.mbcs
return encodings.mbcs.getregentry()
try:
import _bootlocale
if encoding == _bootlocale.getpreferredencoding(False):
import encodings.mbcs
return encodings.mbcs.getregentry()
except ImportError:
# Imports may fail while we are shutting down
pass
codecs.register(_alias_mbcs)

View File

@ -3230,8 +3230,7 @@ def _to_memoryview(buf):
class CTextIOWrapperTest(TextIOWrapperTest):
io = io
shutdown_error = ("ImportError: sys.meta_path is None"
if os.name == "nt" else "RuntimeError: could not find io module state")
shutdown_error = "RuntimeError: could not find io module state"
def test_initialization(self):
r = self.BytesIO(b"\xc3\xa9\n\n")