]> granicus.if.org Git - python/commitdiff
Have regrtest monitor the warnings filter for changes made by a test suite.
authorBrett Cannon <bcannon@gmail.com>
Sat, 20 Mar 2010 22:22:57 +0000 (22:22 +0000)
committerBrett Cannon <bcannon@gmail.com>
Sat, 20 Mar 2010 22:22:57 +0000 (22:22 +0000)
Lib/test/regrtest.py

index e9ca477e63404dec6465288fa46d56e846a07221..d0cd8552b972e59af20c80744174cd7f0e9cef3d 100755 (executable)
@@ -786,7 +786,8 @@ class saved_test_environment:
     # the corresponding method names.
 
     resources = ('sys.argv', 'cwd', 'sys.stdin', 'sys.stdout', 'sys.stderr',
-                 'os.environ', 'sys.path', 'sys.path_hooks', '__import__')
+                 'os.environ', 'sys.path', 'sys.path_hooks', '__import__',
+                 'warnings.filters')
 
     def get_sys_argv(self):
         return id(sys.argv), sys.argv, sys.argv[:]
@@ -838,6 +839,12 @@ class saved_test_environment:
     def restore___import__(self, import_):
         __builtins__.__import__ = import_
 
+    def get_warnings_filters(self):
+        return id(warnings.filters), warnings.filters, warnings.filters[:]
+    def restore_warnings_filters(self, saved_filters):
+        warnings.filters = saved_filters[1]
+        warnings.filters[:] = saved_filters[2]
+
     def resource_info(self):
         for name in self.resources:
             method_suffix = name.replace('.', '_')