[Python-checkins] cpython: Issue #27959: Prevent ImportError from escaping codec search function
steve.dower
python-checkins at python.org
Wed Sep 7 12:32:17 EDT 2016
https://hg.python.org/cpython/rev/47b4dbd451f5
changeset: 103229:47b4dbd451f5
user: Steve Dower <steve.dower at microsoft.com>
date: Wed Sep 07 09:31:52 2016 -0700
summary:
Issue #27959: Prevent ImportError from escaping codec search function
files:
Lib/encodings/__init__.py | 12 ++++++++----
Lib/test/test_io.py | 3 +--
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/Lib/encodings/__init__.py b/Lib/encodings/__init__.py
--- a/Lib/encodings/__init__.py
+++ b/Lib/encodings/__init__.py
@@ -155,9 +155,13 @@
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)
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -3230,8 +3230,7 @@
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")
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list