[Python-checkins] cpython (3.3): #18681: Fix a NameError in imp.reload() (noticed by Weizhao Li).

ezio.melotti python-checkins at python.org
Sat Aug 10 19:02:44 CEST 2013


http://hg.python.org/cpython/rev/80b65aa2d579
changeset:   85101:80b65aa2d579
branch:      3.3
parent:      85098:54998d3d5587
user:        Ezio Melotti <ezio.melotti at gmail.com>
date:        Sat Aug 10 19:59:36 2013 +0300
summary:
  #18681: Fix a NameError in imp.reload() (noticed by Weizhao Li).

files:
  Lib/imp.py           |  2 +-
  Lib/test/test_imp.py |  9 +++++++++
  Misc/NEWS            |  2 ++
  3 files changed, 12 insertions(+), 1 deletions(-)


diff --git a/Lib/imp.py b/Lib/imp.py
--- a/Lib/imp.py
+++ b/Lib/imp.py
@@ -267,7 +267,7 @@
         parent_name = name.rpartition('.')[0]
         if parent_name and parent_name not in sys.modules:
             msg = "parent {!r} not in sys.modules"
-            raise ImportError(msg.format(parentname), name=parent_name)
+            raise ImportError(msg.format(parent_name), name=parent_name)
         return module.__loader__.load_module(name)
     finally:
         try:
diff --git a/Lib/test/test_imp.py b/Lib/test/test_imp.py
--- a/Lib/test/test_imp.py
+++ b/Lib/test/test_imp.py
@@ -275,6 +275,15 @@
             import marshal
             imp.reload(marshal)
 
+    def test_with_deleted_parent(self):
+        # see #18681
+        from html import parser
+        del sys.modules['html']
+        def cleanup(): del sys.modules['html.parser']
+        self.addCleanup(cleanup)
+        with self.assertRaisesRegex(ImportError, 'html'):
+            imp.reload(parser)
+
 
 class PEP3147Tests(unittest.TestCase):
     """Tests of PEP 3147."""
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -64,6 +64,8 @@
 Library
 -------
 
+- Issue #18681: Fix a NameError in imp.reload() (noticed by Weizhao Li).
+
 - Issue #8112: xlmrpc.server's DocXMLRPCServer server no longer raises an error
   if methods have annotations; it now correctly displays the annotations.
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list