From: Ezio Melotti Date: Sat, 14 May 2011 03:02:25 +0000 (+0300) Subject: Change import_fresh_module to work with packages. X-Git-Tag: v2.7.2rc1~42 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=720f8dea196640a053135f31be89b652d685e55c;p=thirdparty%2FPython%2Fcpython.git Change import_fresh_module to work with packages. --- diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py index df4d1241a689..04ab443a4b92 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -84,19 +84,15 @@ def import_module(name, deprecated=False): def _save_and_remove_module(name, orig_modules): """Helper function to save and remove a module from sys.modules - Return True if the module was in sys.modules, False otherwise. Raise ImportError if the module can't be imported.""" - saved = True - try: - orig_modules[name] = sys.modules[name] - except KeyError: - # try to import the module and raise an error if it can't be imported + # try to import the module and raise an error if it can't be imported + if name not in sys.modules: __import__(name) - saved = False - else: del sys.modules[name] - return saved - + for modname in list(sys.modules): + if modname == name or modname.startswith(name + '.'): + orig_modules[modname] = sys.modules[modname] + del sys.modules[modname] def _save_and_block_module(name, orig_modules): """Helper function to save and block a module in sys.modules