From 2ee4128e9b4f481d5029fe4c8ada6c12ac64e2bd Mon Sep 17 00:00:00 2001
From: Brett Cannon <bcannon@gmail.com>
Date: Tue, 14 Aug 2007 05:51:06 +0000
Subject: Remove test.test_support.guard_warnings_filter.
 test.test_support.catch_warning is more full-featured and provides the same
 functionality.

Since guard_warnings_filter was added in 2.6 there is no
backwards-compatibility issues.
---
 Doc/lib/libtest.tex         |  6 ------
 Lib/test/test_exceptions.py |  4 ++--
 Lib/test/test_import.py     |  4 ++--
 Lib/test/test_pep352.py     | 14 +++++++-------
 Lib/test/test_random.py     |  2 +-
 Lib/test/test_re.py         |  4 ++--
 Lib/test/test_struct.py     |  2 +-
 Lib/test/test_sundry.py     |  4 ++--
 Lib/test/test_support.py    |  8 --------
 Lib/test/test_warnings.py   |  2 +-
 10 files changed, 18 insertions(+), 32 deletions(-)

diff --git a/Doc/lib/libtest.tex b/Doc/lib/libtest.tex
index 5e185fa..2e3bb61 100644
--- a/Doc/lib/libtest.tex
+++ b/Doc/lib/libtest.tex
@@ -265,12 +265,6 @@ If no match is found \var{filename} is returned.
 This does not equal a failure since it could be the path to the file.
 \end{funcdesc}
 
-\begin{funcdesc}{guard_warnings_filter}{}
-Returns a context manager that guards the \module{warnings} module's
-filter settings.
-\versionadded{2.6}
-\end{funcdesc}
-
 \begin{funcdesc}{run_unittest}{*classes}
 Execute \class{unittest.TestCase} subclasses passed to the function.
 The function scans the classes for methods starting with the prefix
diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py
index 1f7105e..657cbc5 100644
--- a/Lib/test/test_exceptions.py
+++ b/Lib/test/test_exceptions.py
@@ -6,7 +6,7 @@ import unittest
 import pickle, cPickle
 
 from test.test_support import (TESTFN, unlink, run_unittest,
-                                guard_warnings_filter)
+                                catch_warning)
 from test.test_pep352 import ignore_message_warning
 
 # XXX This is not really enough, each *operation* should be tested!
@@ -274,7 +274,7 @@ class ExceptionTests(unittest.TestCase):
         except NameError:
             pass
 
-        with guard_warnings_filter():
+        with catch_warning():
             ignore_message_warning()
             for exc, args, expected in exceptionList:
                 try:
diff --git a/Lib/test/test_import.py b/Lib/test/test_import.py
index a061a40..a805534 100644
--- a/Lib/test/test_import.py
+++ b/Lib/test/test_import.py
@@ -1,4 +1,4 @@
-from test.test_support import TESTFN, run_unittest, guard_warnings_filter
+from test.test_support import TESTFN, run_unittest, catch_warning
 
 import unittest
 import os
@@ -215,7 +215,7 @@ class ImportTest(unittest.TestCase):
         self.assert_(y is test.test_support, y.__name__)
 
     def test_import_initless_directory_warning(self):
-        with guard_warnings_filter():
+        with catch_warning():
             # Just a random non-package directory we always expect to be
             # somewhere in sys.path...
             warnings.simplefilter('error', ImportWarning)
diff --git a/Lib/test/test_pep352.py b/Lib/test/test_pep352.py
index 89b2fdc..1867b9e 100644
--- a/Lib/test/test_pep352.py
+++ b/Lib/test/test_pep352.py
@@ -2,7 +2,7 @@ import unittest
 import __builtin__
 import exceptions
 import warnings
-from test.test_support import run_unittest, guard_warnings_filter
+from test.test_support import run_unittest, catch_warning
 import os
 from platform import system as platform_system
 
@@ -22,7 +22,7 @@ class ExceptionClassTests(unittest.TestCase):
         self.failUnless(issubclass(Exception, object))
 
     def verify_instance_interface(self, ins):
-        with guard_warnings_filter():
+        with catch_warning():
             ignore_message_warning()
             for attr in ("args", "message", "__str__", "__repr__",
                             "__getitem__"):
@@ -95,7 +95,7 @@ class ExceptionClassTests(unittest.TestCase):
         # Make sure interface works properly when given a single argument
         arg = "spam"
         exc = Exception(arg)
-        with guard_warnings_filter():
+        with catch_warning():
             ignore_message_warning()
             results = ([len(exc.args), 1], [exc.args[0], arg],
                     [exc.message, arg],
@@ -109,7 +109,7 @@ class ExceptionClassTests(unittest.TestCase):
         arg_count = 3
         args = tuple(range(arg_count))
         exc = Exception(*args)
-        with guard_warnings_filter():
+        with catch_warning():
             ignore_message_warning()
             results = ([len(exc.args), arg_count], [exc.args, args],
                     [exc.message, ''], [str(exc), str(args)],
@@ -121,7 +121,7 @@ class ExceptionClassTests(unittest.TestCase):
     def test_interface_no_arg(self):
         # Make sure that with no args that interface is correct
         exc = Exception()
-        with guard_warnings_filter():
+        with catch_warning():
             ignore_message_warning()
             results = ([len(exc.args), 0], [exc.args, tuple()],
                     [exc.message, ''],
@@ -132,7 +132,7 @@ class ExceptionClassTests(unittest.TestCase):
 
     def test_message_deprecation(self):
         # As of Python 2.6, BaseException.message is deprecated.
-        with guard_warnings_filter():
+        with catch_warning():
             warnings.resetwarnings()
             warnings.filterwarnings('error')
 
@@ -219,7 +219,7 @@ class UsageTests(unittest.TestCase):
 
     def test_catch_string(self):
         # Catching a string should trigger a DeprecationWarning.
-        with guard_warnings_filter():
+        with catch_warning():
             warnings.resetwarnings()
             warnings.filterwarnings("error")
             str_exc = "spam"
diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py
index 77bccf6..29fe42a 100644
--- a/Lib/test/test_random.py
+++ b/Lib/test/test_random.py
@@ -178,7 +178,7 @@ class WichmannHill_TestBasicOps(TestBasicOps):
 
     def test_bigrand(self):
         # Verify warnings are raised when randrange is too large for random()
-        with test_support.guard_warnings_filter():
+        with test_support.catch_warning():
             warnings.filterwarnings("error", "Underlying random")
             self.assertRaises(UserWarning, self.gen.randrange, 2**60)
 
diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py
index eca5fbb..cfb949c 100644
--- a/Lib/test/test_re.py
+++ b/Lib/test/test_re.py
@@ -1,7 +1,7 @@
 import sys
 sys.path = ['.'] + sys.path
 
-from test.test_support import verbose, run_unittest, guard_warnings_filter
+from test.test_support import verbose, run_unittest, catch_warning
 import re
 from re import Scanner
 import sys, os, traceback
@@ -416,7 +416,7 @@ class ReTests(unittest.TestCase):
         self.pickle_test(cPickle)
         # old pickles expect the _compile() reconstructor in sre module
         import warnings
-        with guard_warnings_filter():
+        with catch_warning():
             warnings.filterwarnings("ignore", "The sre module is deprecated",
                                     DeprecationWarning)
             from sre import _compile
diff --git a/Lib/test/test_struct.py b/Lib/test/test_struct.py
index ea3a518..925308d 100644
--- a/Lib/test/test_struct.py
+++ b/Lib/test/test_struct.py
@@ -50,7 +50,7 @@ def any_err(func, *args):
 
 def with_warning_restore(func):
     def _with_warning_restore(*args, **kw):
-        with test.test_support.guard_warnings_filter():
+        with test.test_support.catch_warning():
             # Grrr, we need this function to warn every time.  Without removing
             # the warningregistry, running test_tarfile then test_struct would fail
             # on 64-bit platforms.
diff --git a/Lib/test/test_sundry.py b/Lib/test/test_sundry.py
index e71852b..7609385 100644
--- a/Lib/test/test_sundry.py
+++ b/Lib/test/test_sundry.py
@@ -1,10 +1,10 @@
 """Do a minimal test of all the modules that aren't otherwise tested."""
 
-from test.test_support import guard_warnings_filter
+from test.test_support import catch_warning
 import sys
 import warnings
 
-with guard_warnings_filter():
+with catch_warning():
     warnings.filterwarnings('ignore', r".*posixfile",
                             DeprecationWarning)
     warnings.filterwarnings('ignore', r".*mimify", DeprecationWarning)
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index 52f74f5..0f96084 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -271,14 +271,6 @@ def open_urlresource(url):
     fn, _ = urllib.urlretrieve(url, filename)
     return open(fn)
 
-@contextlib.contextmanager
-def guard_warnings_filter():
-    """Guard the warnings filter from being permanently changed."""
-    original_filters = warnings.filters[:]
-    try:
-        yield
-    finally:
-        warnings.filters = original_filters
 
 class WarningMessage(object):
     "Holds the result of the latest showwarning() call"
diff --git a/Lib/test/test_warnings.py b/Lib/test/test_warnings.py
index 283806f..cca6329 100644
--- a/Lib/test/test_warnings.py
+++ b/Lib/test/test_warnings.py
@@ -61,7 +61,7 @@ class TestModule(unittest.TestCase):
     def test_options(self):
         # Uses the private _setoption() function to test the parsing
         # of command-line warning arguments
-        with test_support.guard_warnings_filter():
+        with test_support.catch_warning():
             self.assertRaises(warnings._OptionError,
                               warnings._setoption, '1:2:3:4:5:6')
             self.assertRaises(warnings._OptionError,
-- 
cgit v0.12

