From 679dbc4cdcf26bef9cbb926f9db3ef1070c89667 Mon Sep 17 00:00:00 2001
From: Tres Seaver <tseaver@palladion.com>
Date: Sat, 24 Mar 2012 22:21:04 +0100
Subject: [PATCH] Use stdlib's warnings.catch_warnings instead of rolling by hand.

---
 repoze/who/tests/test_config.py |   62 +++++++++++++------------------
 1 files changed, 26 insertions(+), 36 deletions(-)

diff --git a/repoze/who/tests/test_config.py b/repoze/who/tests/test_config.py
index a0efd72..2023797 100644
--- a/repoze/who/tests/test_config.py
+++ b/repoze/who/tests/test_config.py
@@ -467,16 +467,6 @@
             import warnings
             warnings.filters[:] = self._warning_filters
 
-    def _filterWarnings(self):
-        global __warningregistry__
-        try:
-            del __warningregistry__
-        except NameError:
-            pass
-        import warnings
-        self._warning_filters = warnings.filters[:]
-        warnings.filterwarnings("ignore")
-
     def _getFactory(self):
         from repoze.who.config import make_api_factory_with_config
         return make_api_factory_with_config
@@ -493,34 +483,34 @@
         return path
 
     def test_bad_config_filename(self):
-        global __warningregistry__
-        self._filterWarnings()
-        factory = self._getFactory()
-        path = '/nonesuch/file/should/exist'
-        global_conf = {'here': '/'}
-        api_factory = factory(global_conf, config_file=path)
-        self.assertEqual(len(api_factory.identifiers), 0)
-        self.assertEqual(len(api_factory.authenticators), 0)
-        self.assertEqual(len(api_factory.challengers), 0)
-        self.assertEqual(len(api_factory.mdproviders), 0)
-        self.assertEqual(api_factory.remote_user_key, 'REMOTE_USER')
-        self.failUnless(api_factory.logger is None)
-        self.failUnless(__warningregistry__)
+        import warnings
+        with warnings.catch_warnings(record=True) as warned:
+            factory = self._getFactory()
+            path = '/nonesuch/file/should/exist'
+            global_conf = {'here': '/'}
+            api_factory = factory(global_conf, config_file=path)
+            self.assertEqual(len(api_factory.identifiers), 0)
+            self.assertEqual(len(api_factory.authenticators), 0)
+            self.assertEqual(len(api_factory.challengers), 0)
+            self.assertEqual(len(api_factory.mdproviders), 0)
+            self.assertEqual(api_factory.remote_user_key, 'REMOTE_USER')
+            self.failUnless(api_factory.logger is None)
+            self.failUnless(warned)
 
     def test_bad_config_content(self):
-        global __warningregistry__
-        self._filterWarnings()
-        factory = self._getFactory()
-        path = self._getTempfile('this is not an INI file')
-        global_conf = {'here': '/'}
-        api_factory = factory(global_conf, config_file=path)
-        self.assertEqual(len(api_factory.identifiers), 0)
-        self.assertEqual(len(api_factory.authenticators), 0)
-        self.assertEqual(len(api_factory.challengers), 0)
-        self.assertEqual(len(api_factory.mdproviders), 0)
-        self.assertEqual(api_factory.remote_user_key, 'REMOTE_USER')
-        self.failUnless(api_factory.logger is None)
-        self.failUnless(__warningregistry__)
+        import warnings
+        with warnings.catch_warnings(record=True) as warned:
+            factory = self._getFactory()
+            path = self._getTempfile('this is not an INI file')
+            global_conf = {'here': '/'}
+            api_factory = factory(global_conf, config_file=path)
+            self.assertEqual(len(api_factory.identifiers), 0)
+            self.assertEqual(len(api_factory.authenticators), 0)
+            self.assertEqual(len(api_factory.challengers), 0)
+            self.assertEqual(len(api_factory.mdproviders), 0)
+            self.assertEqual(api_factory.remote_user_key, 'REMOTE_USER')
+            self.failUnless(api_factory.logger is None)
+            self.failUnless(warned)
 
     def test_sample_config_no_logger(self):
         factory = self._getFactory()

--
Gitblit v1.9.3