diff options
| author | Barry Warsaw <barry@python.org> | 2012-11-20 15:35:27 -0500 |
|---|---|---|
| committer | Barry Warsaw <barry@python.org> | 2012-11-20 15:35:27 -0500 |
| commit | b72c10996e804413ebf0cb04ffc6e10f128b90c2 (patch) | |
| tree | f81b41542a8c1c891d8973d0e65980f8afec5afb /Lib/test | |
| parent | 47037d7e4e1f0f71a7640f1e71f8d558c3ac6668 (diff) | |
| parent | 82c1c781c7ee6496bd4c404b7ba972eed5dbcb12 (diff) | |
| download | cpython-git-b72c10996e804413ebf0cb04ffc6e10f128b90c2.tar.gz | |
- 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')
| -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 0c086ce147..8b9c77dbf8 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 |
