diff options
author | Steve Dower <steve.dower@microsoft.com> | 2015-09-06 22:27:42 -0700 |
---|---|---|
committer | Steve Dower <steve.dower@microsoft.com> | 2015-09-06 22:27:42 -0700 |
commit | f35bd306ffa2c05a1297435bb15cd3b4d47b3977 (patch) | |
tree | 8a909b9eb6a5325a5ebbcbdc5858dd798d78db0d /Lib/test/test_imp.py | |
parent | da19767b86dcee5810ad8c77a05811be041d7c89 (diff) | |
parent | c1635e497d060bae076127152801af2b2ec552ff (diff) | |
download | cpython-git-f35bd306ffa2c05a1297435bb15cd3b4d47b3977.tar.gz |
Merge from 3.5.0 branch.
Diffstat (limited to 'Lib/test/test_imp.py')
-rw-r--r-- | Lib/test/test_imp.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/Lib/test/test_imp.py b/Lib/test/test_imp.py index 47bf1de92a..ee9ee1ad8c 100644 --- a/Lib/test/test_imp.py +++ b/Lib/test/test_imp.py @@ -3,6 +3,7 @@ try: except ImportError: _thread = None import importlib +import importlib.util import os import os.path import shutil @@ -275,6 +276,29 @@ class ImportTests(unittest.TestCase): self.skipTest("found module doesn't appear to be a C extension") imp.load_module(name, None, *found[1:]) + @requires_load_dynamic + def test_issue24748_load_module_skips_sys_modules_check(self): + name = 'test.imp_dummy' + try: + del sys.modules[name] + except KeyError: + pass + try: + module = importlib.import_module(name) + spec = importlib.util.find_spec('_testmultiphase') + module = imp.load_dynamic(name, spec.origin) + self.assertEqual(module.__name__, name) + self.assertEqual(module.__spec__.name, name) + self.assertEqual(module.__spec__.origin, spec.origin) + self.assertRaises(AttributeError, getattr, module, 'dummy_name') + self.assertEqual(module.int_const, 1969) + self.assertIs(sys.modules[name], module) + finally: + try: + del sys.modules[name] + except KeyError: + pass + @unittest.skipIf(sys.dont_write_bytecode, "test meaningful only when writing bytecode") def test_bug7732(self): |