Merged revisions 65163 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r65163 | georg.brandl | 2008-07-21 01:18:55 +0200 (Mon, 21 Jul 2008) | 4 lines

  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 ("<urlopen error unknown url type: do>").
........
This commit is contained in:
Georg Brandl 2008-07-20 23:21:49 +00:00
parent aac8fd3153
commit d68442dc93

View File

@ -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):
@ -256,13 +245,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():
support.run_unittest(ImportHooksTestCase)