diff options
author | Barry Warsaw <barry@python.org> | 2012-11-20 20:22:51 (GMT) |
---|---|---|
committer | Barry Warsaw <barry@python.org> | 2012-11-20 20:22:51 (GMT) |
commit | 82c1c781c7ee6496bd4c404b7ba972eed5dbcb12 (patch) | |
tree | e487dc3ab171e765a0a272921fa0db38df43a596 /Lib/test/test_importlib | |
parent | 23089ab1db23333457149b567c125c10445550b6 (diff) | |
download | cpython-82c1c781c7ee6496bd4c404b7ba972eed5dbcb12.zip cpython-82c1c781c7ee6496bd4c404b7ba972eed5dbcb12.tar.gz cpython-82c1c781c7ee6496bd4c404b7ba972eed5dbcb12.tar.bz2 |
- Issue #16514: Fix regression causing a traceback when sys.path[0] is None
(actually, any non-string or non-bytes type).
Diffstat (limited to 'Lib/test/test_importlib')
-rw-r--r-- | Lib/test/test_importlib/import_/test_path.py | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/Lib/test/test_importlib/import_/test_path.py b/Lib/test/test_importlib/import_/test_path.py index 0c086ce..8b9c77d 100644 --- a/Lib/test/test_importlib/import_/test_path.py +++ b/Lib/test/test_importlib/import_/test_path.py @@ -1,15 +1,14 @@ from importlib import _bootstrap from importlib import machinery +from importlib import import_module from .. import util from . import util as import_util -import imp import os import sys -import tempfile -from test import support -from types import MethodType +from types import ModuleType import unittest import warnings +import zipimport class FinderTests(unittest.TestCase): @@ -89,6 +88,24 @@ class FinderTests(unittest.TestCase): self.assertIs(loader, importer) self.assertIn(os.curdir, sys.path_importer_cache) + def test_None_on_sys_path(self): + # Putting None in sys.path[0] caused an import regression from Python + # 3.2: http://bugs.python.org/issue16514 + new_path = sys.path[:] + new_path.insert(0, None) + new_path_importer_cache = sys.path_importer_cache.copy() + new_path_importer_cache.pop(None, None) + new_path_hooks = [zipimport.zipimporter, + _bootstrap.FileFinder.path_hook( + *_bootstrap._get_supported_file_loaders())] + with util.uncache('email'): + with util.import_state(meta_path=sys.meta_path[:], + path=new_path, + path_importer_cache=new_path_importer_cache, + path_hooks=new_path_hooks): + module = import_module('email') + self.assertIsInstance(module, ModuleType) + def test_main(): from test.support import run_unittest |