]> granicus.if.org Git - python/commitdiff
Check that sys.path_hooks and __import__ are not changed by tests.
authorBrett Cannon <bcannon@gmail.com>
Fri, 19 Feb 2010 15:57:10 +0000 (15:57 +0000)
committerBrett Cannon <bcannon@gmail.com>
Fri, 19 Feb 2010 15:57:10 +0000 (15:57 +0000)
Lib/test/regrtest.py

index 551158c99bdca767f71ac66dbf8305ce439b4f21..33a224823d65e6da2407d164f45e0ac529b6352e 100755 (executable)
@@ -779,7 +779,7 @@ class saved_test_environment:
     # the corresponding method names.
 
     resources = ('sys.argv', 'cwd', 'sys.stdin', 'sys.stdout', 'sys.stderr',
-                 'os.environ', 'sys.path')
+                 'os.environ', 'sys.path', 'sys.path_hooks', '__import__')
 
     def get_sys_argv(self):
         return id(sys.argv), sys.argv, sys.argv[:]
@@ -820,6 +820,17 @@ class saved_test_environment:
         sys.path = saved_path[1]
         sys.path[:] = saved_path[2]
 
+    def get_sys_path_hooks(self):
+        return id(sys.path_hooks), sys.path_hooks, sys.path_hooks[:]
+    def restore_sys_path_hooks(self, saved_hooks):
+        sys.path_hooks = saved_hooks[1]
+        sys.path_hooks[:] = saved_hooks[2]
+
+    def get___import__(self):
+        return __builtins__.__import__
+    def restore___import__(self, import_):
+        __builtins__.__import__ = import_
+
     def resource_info(self):
         for name in self.resources:
             method_suffix = name.replace('.', '_')