From fa267829e7a68b7c8c0814108094a0fb6437ff8d Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 20 Jul 2008 23:18:55 +0000 Subject: Save the whole of sys.modules instead of using an import tracker. This, when merged to py3k, will fix the spurious buildbot failure in test_urllib2 (""). --- Lib/test/test_importhooks.py | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/Lib/test/test_importhooks.py b/Lib/test/test_importhooks.py index e8b4695..643ecce 100644 --- a/Lib/test/test_importhooks.py +++ b/Lib/test/test_importhooks.py @@ -33,15 +33,6 @@ test2_futrel_co = compile(futimp + relimp + test_src, "", "exec") test_path = "!!!_test_!!!" -class ImportTracker: - """Importer that only tracks attempted imports.""" - def __init__(self): - self.imports = [] - def find_module(self, fullname, path=None): - self.imports.append(fullname) - return None - - class TestImporter: modules = { @@ -152,17 +143,15 @@ class ImportHooksBaseTestCase(unittest.TestCase): self.meta_path = sys.meta_path[:] self.path_hooks = sys.path_hooks[:] sys.path_importer_cache.clear() - self.tracker = ImportTracker() - sys.meta_path.insert(0, self.tracker) + self.modules_before = sys.modules.copy() def tearDown(self): sys.path[:] = self.path sys.meta_path[:] = self.meta_path sys.path_hooks[:] = self.path_hooks sys.path_importer_cache.clear() - for fullname in self.tracker.imports: - if fullname in sys.modules: - del sys.modules[fullname] + sys.modules.clear() + sys.modules.update(self.modules_before) class ImportHooksTestCase(ImportHooksBaseTestCase): @@ -261,13 +250,7 @@ class ImportHooksTestCase(ImportHooksBaseTestCase): for mname in mnames: m = __import__(mname, globals(), locals(), ["__dummy__"]) m.__loader__ # to make sure we actually handled the import - # Delete urllib from modules because urlparse was imported above. - # Without this hack, test_socket_ssl fails if run in this order: - # regrtest.py test_codecmaps_tw test_importhooks test_socket_ssl - try: - del sys.modules['urllib'] - except KeyError: - pass + def test_main(): test_support.run_unittest(ImportHooksTestCase) -- cgit v0.12