From: Ezio Melotti Date: Sat, 10 Aug 2013 16:59:36 +0000 (+0300) Subject: #18681: Fix a NameError in imp.reload() (noticed by Weizhao Li). X-Git-Tag: v3.4.0a2~258^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=056bafe7a663e890594a11eec99c78f742452fff;p=python #18681: Fix a NameError in imp.reload() (noticed by Weizhao Li). --- diff --git a/Lib/imp.py b/Lib/imp.py index 40869f5ac0..34b6c542e1 100644 --- a/Lib/imp.py +++ b/Lib/imp.py @@ -267,7 +267,7 @@ def reload(module): 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 index fe436f3985..ade3e2564f 100644 --- a/Lib/test/test_imp.py +++ b/Lib/test/test_imp.py @@ -275,6 +275,15 @@ class ReloadTests(unittest.TestCase): 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 index 635a925970..ccbb57a3b8 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -64,6 +64,8 @@ Core and Builtins 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.