[Python-checkins] [3.6] replace dynamic import with 'exec' with importlib.import_module (GH-5433) (GH-5440)

Benjamin Peterson webhook-mailer at python.org
Tue Jan 30 01:02:11 EST 2018


https://github.com/python/cpython/commit/88fa79a10a340439ed021fbc4988b6f3e73b2391
commit: 88fa79a10a340439ed021fbc4988b6f3e73b2391
branch: 3.6
author: Benjamin Peterson <benjamin at python.org>
committer: GitHub <noreply at github.com>
date: 2018-01-29T22:02:09-08:00
summary:

[3.6] replace dynamic import with 'exec' with importlib.import_module (GH-5433) (GH-5440)

(cherry picked from commit 77526f05fa788d6fb12f2121fe6b96c130d9b717)

files:
M Lib/test/test_hashlib.py

diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py
index 981748892efb..28613496d111 100644
--- a/Lib/test/test_hashlib.py
+++ b/Lib/test/test_hashlib.py
@@ -9,6 +9,7 @@
 import array
 from binascii import unhexlify
 import hashlib
+import importlib
 import itertools
 import os
 import sys
@@ -86,11 +87,11 @@ class HashLibTestCase(unittest.TestCase):
     def _conditional_import_module(self, module_name):
         """Import a module and return a reference to it or None on failure."""
         try:
-            exec('import '+module_name)
-        except ImportError as error:
+            return importlib.import_module(module_name)
+        except ModuleNotFoundError as error:
             if self._warn_on_extension_import:
                 warnings.warn('Did a C extension fail to compile? %s' % error)
-        return locals().get(module_name)
+        return None
 
     def __init__(self, *args, **kwargs):
         algorithms = set()



More information about the Python-checkins mailing list