From 9c1e6f85bee360d4e53bff46f6df5be5fdc254b7 Mon Sep 17 00:00:00 2001
From: Tres Seaver <tseaver@palladion.com>
Date: Mon, 19 Mar 2012 20:05:11 +0100
Subject: [PATCH] Suppress deprecation warnings under Py3k.

---
 repoze/who/plugins/tests/test_htpasswd.py   |    7 +
 repoze/who/plugins/tests/test_authtkt.py    |    7 +
 repoze/who/tests/test_config.py             |   16 +++-
 repoze/who/tests/test__auth_tkt.py          |   16 +++-
 repoze/who/tests/test_classifiers.py        |   14 ++
 repoze/who/_compat.py                       |    8 ++
 repoze/who/plugins/tests/test_sql.py        |   18 +++-
 repoze/who/tests/test_middleware.py         |   16 +++-
 repoze/who/plugins/tests/test_redirector.py |   54 +++++++-----
 repoze/who/tests/test_restrict.py           |   16 +++-
 repoze/who/plugins/tests/test_basicauth.py  |    6 +
 repoze/who/tests/test_api.py                |   20 +++-
 12 files changed, 145 insertions(+), 53 deletions(-)

diff --git a/repoze/who/_compat.py b/repoze/who/_compat.py
index e33b886..b5901c5 100644
--- a/repoze/who/_compat.py
+++ b/repoze/who/_compat.py
@@ -26,6 +26,14 @@
     encodestring = base64.encodestring
 
 try:
+    from urllib.parse import parse_qs
+except ImportError: #pragma NO COVER Python < 3.0
+    from cgi import parse_qs
+    from cgi import parse_qsl
+else: #pragma NO COVER Python >= 3.0
+    from urllib.parse import parse_qsl
+
+try:
     from ConfigParser import ConfigParser
 except ImportError: #pragma NO COVER Python >= 3.0
     from configparser import ConfigParser
diff --git a/repoze/who/plugins/tests/test_authtkt.py b/repoze/who/plugins/tests/test_authtkt.py
index 5a2e37a..b7ab08f 100644
--- a/repoze/who/plugins/tests/test_authtkt.py
+++ b/repoze/who/plugins/tests/test_authtkt.py
@@ -1,5 +1,6 @@
 import unittest
 
+
 class TestAuthTktCookiePlugin(unittest.TestCase):
     tempdir = None
     _now_testing = None
@@ -14,6 +15,12 @@
         if self._now_testing is not None:
             self._setNowTesting(self._now_testing)
 
+    def failUnless(self, predicate, message=''):
+        self.assertTrue(predicate, message) # Nannies go home!
+
+    def failIf(self, predicate, message=''):
+        self.assertFalse(predicate, message) # Nannies go home!
+
     def _getTargetClass(self):
         from repoze.who.plugins.auth_tkt import AuthTktCookiePlugin
         return AuthTktCookiePlugin
diff --git a/repoze/who/plugins/tests/test_basicauth.py b/repoze/who/plugins/tests/test_basicauth.py
index 1f36b51..a89fd38 100644
--- a/repoze/who/plugins/tests/test_basicauth.py
+++ b/repoze/who/plugins/tests/test_basicauth.py
@@ -10,6 +10,12 @@
         plugin = self._getTargetClass()(*arg, **kw)
         return plugin
 
+    def failUnless(self, predicate, message=''):
+        self.assertTrue(predicate, message) # Nannies go home!
+
+    def failIf(self, predicate, message=''):
+        self.assertFalse(predicate, message) # Nannies go home!
+
     def _makeEnviron(self, kw=None):
         from wsgiref.util import setup_testing_defaults
         environ = {}
diff --git a/repoze/who/plugins/tests/test_htpasswd.py b/repoze/who/plugins/tests/test_htpasswd.py
index e6d37f5..40350a1 100644
--- a/repoze/who/plugins/tests/test_htpasswd.py
+++ b/repoze/who/plugins/tests/test_htpasswd.py
@@ -1,5 +1,6 @@
 import unittest
 
+
 class TestHTPasswdPlugin(unittest.TestCase):
 
     def _getTargetClass(self):
@@ -17,6 +18,12 @@
             environ.update(kw)
         return environ
 
+    def failUnless(self, predicate, message=''):
+        self.assertTrue(predicate, message) # Nannies go home!
+
+    def failIf(self, predicate, message=''):
+        self.assertFalse(predicate, message) # Nannies go home!
+
     def test_implements(self):
         from zope.interface.verify import verifyClass
         from repoze.who.interfaces import IAuthenticator
diff --git a/repoze/who/plugins/tests/test_redirector.py b/repoze/who/plugins/tests/test_redirector.py
index 4df79e3..e0a2511 100644
--- a/repoze/who/plugins/tests/test_redirector.py
+++ b/repoze/who/plugins/tests/test_redirector.py
@@ -1,7 +1,15 @@
 import unittest
 
+class _Base(unittest.TestCase):
 
-class TestRedirectorPlugin(unittest.TestCase):
+    def failUnless(self, predicate, message=''):
+        self.assertTrue(predicate, message) # Nannies go home!
+
+    def failIf(self, predicate, message=''):
+        self.assertFalse(predicate, message) # Nannies go home!
+
+
+class TestRedirectorPlugin(_Base):
 
     def _getTargetClass(self):
         from repoze.who.plugins.redirector import RedirectorPlugin
@@ -69,8 +77,8 @@
                                         reason_header='X-Reason')
 
     def test_challenge(self):
-        import cgi
-        from repoze.who._compat import urlparse
+        from ..._compat import parse_qsl
+        from ..._compat import urlparse
         plugin = self._makeOne(came_from_param='came_from',
                                reason_param='reason',
                                reason_header='X-Authorization-Failure-Reason',
@@ -86,7 +94,7 @@
         self.assertEqual(sr.headers[1][0], 'Location')
         url = sr.headers[1][1]
         parts = urlparse(url)
-        parts_qsl = cgi.parse_qsl(parts[4])
+        parts_qsl = parse_qsl(parts[4])
         self.assertEqual(len(parts_qsl), 1)
         came_from_key, came_from_value = parts_qsl[0]
         self.assertEqual(parts[0], 'http')
@@ -103,8 +111,8 @@
         self.assertEqual(sr.status, '302 Found')
 
     def test_challenge_with_reason_header(self):
-        import cgi
-        from repoze.who._compat import urlparse
+        from ..._compat import parse_qsl
+        from ..._compat import urlparse
         plugin = self._makeOne(came_from_param='came_from',
                                reason_param='reason',
                                reason_header='X-Authorization-Failure-Reason',
@@ -120,7 +128,7 @@
         self.assertEqual(sr.headers[1][0], 'Location')
         url = sr.headers[1][1]
         parts = urlparse(url)
-        parts_qsl = cgi.parse_qsl(parts[4])
+        parts_qsl = parse_qsl(parts[4])
         self.assertEqual(len(parts_qsl), 2)
         parts_qsl.sort()
         came_from_key, came_from_value = parts_qsl[0]
@@ -135,8 +143,8 @@
         self.assertEqual(reason_value, 'you are ugly')
 
     def test_challenge_with_custom_reason_header(self):
-        import cgi
-        from repoze.who._compat import urlparse
+        from ..._compat import parse_qsl
+        from ..._compat import urlparse
         plugin = self._makeOne(came_from_param='came_from',
                                reason_param='reason',
                                reason_header='X-Custom-Auth-Failure',
@@ -153,7 +161,7 @@
         self.assertEqual(sr.headers[1][0], 'Location')
         url = sr.headers[1][1]
         parts = urlparse(url)
-        parts_qsl = cgi.parse_qsl(parts[4])
+        parts_qsl = parse_qsl(parts[4])
         self.assertEqual(len(parts_qsl), 1)
         came_from_key, came_from_value = parts_qsl[0]
         self.assertEqual(parts[0], 'http')
@@ -164,8 +172,8 @@
         self.assertEqual(came_from_value, 'http://www.example.com/?default=1')
 
     def test_challenge_w_reason_no_reason_param_no_came_from_param(self):
-        import cgi
-        from repoze.who._compat import urlparse
+        from ..._compat import parse_qsl
+        from ..._compat import urlparse
         plugin = self._makeOne()
         environ = self._makeEnviron()
         app = plugin.challenge(
@@ -180,7 +188,7 @@
         self.assertEqual(sr.headers[1][0], 'Location')
         url = sr.headers[1][1]
         parts = urlparse(url)
-        parts_qsl = cgi.parse_qsl(parts[4])
+        parts_qsl = parse_qsl(parts[4])
         self.assertEqual(len(parts_qsl), 0)
         self.assertEqual(parts[0], 'http')
         self.assertEqual(parts[1], 'example.com')
@@ -188,8 +196,8 @@
         self.assertEqual(parts[3], '')
 
     def test_challenge_w_reason_no_reason_param_w_came_from_param(self):
-        import cgi
-        from repoze.who._compat import urlparse
+        from ..._compat import parse_qsl
+        from ..._compat import urlparse
         plugin = self._makeOne(came_from_param='came_from',
                               )
         environ = self._makeEnviron()
@@ -204,7 +212,7 @@
         self.assertEqual(sr.headers[1][0], 'Location')
         url = sr.headers[1][1]
         parts = urlparse(url)
-        parts_qsl = cgi.parse_qsl(parts[4])
+        parts_qsl = parse_qsl(parts[4])
         self.assertEqual(len(parts_qsl), 1)
         came_from_key, came_from_value = parts_qsl[0]
         self.assertEqual(parts[0], 'http')
@@ -215,8 +223,8 @@
         self.assertEqual(came_from_value, 'http://www.example.com/?default=1')
 
     def test_challenge_with_reason_and_custom_reason_param(self):
-        import cgi
-        from repoze.who._compat import urlparse
+        from ..._compat import parse_qsl
+        from ..._compat import urlparse
         plugin = self._makeOne(came_from_param='came_from',
                                reason_param='auth_failure',
                                reason_header='X-Custom-Auth-Failure',
@@ -233,7 +241,7 @@
         self.assertEqual(sr.headers[1][0], 'Location')
         url = sr.headers[1][1]
         parts = urlparse(url)
-        parts_qsl = cgi.parse_qsl(parts[4])
+        parts_qsl = parse_qsl(parts[4])
         self.assertEqual(len(parts_qsl), 2)
         parts_qsl.sort()
         reason_key, reason_value = parts_qsl[0]
@@ -248,8 +256,8 @@
         self.assertEqual(reason_value, 'you are ugly')
 
     def test_challenge_wo_reason_w_came_from_param(self):
-        import cgi
-        from repoze.who._compat import urlparse
+        from ..._compat import parse_qsl
+        from ..._compat import urlparse
         plugin = self._makeOne(came_from_param='came_from')
         environ = self._makeEnviron()
         app = plugin.challenge(
@@ -262,7 +270,7 @@
         self.assertEqual(sr.headers[1][0], 'Location')
         url = sr.headers[1][1]
         parts = urlparse(url)
-        parts_qsl = cgi.parse_qsl(parts[4])
+        parts_qsl = parse_qsl(parts[4])
         self.assertEqual(len(parts_qsl), 1)
         came_from_key, came_from_value = parts_qsl[0]
         self.assertEqual(parts[0], 'http')
@@ -291,7 +299,7 @@
         self.assertEqual(sr.headers[1][0], 'set-cookie')
         self.assertEqual(sr.headers[1][1], 'b')
 
-class Test_make_redirecting_plugin(unittest.TestCase):
+class Test_make_redirecting_plugin(_Base):
 
     def _callFUT(self, *args, **kw):
         from repoze.who.plugins.redirector import make_plugin
diff --git a/repoze/who/plugins/tests/test_sql.py b/repoze/who/plugins/tests/test_sql.py
index e4be311..a71cb57 100644
--- a/repoze/who/plugins/tests/test_sql.py
+++ b/repoze/who/plugins/tests/test_sql.py
@@ -1,6 +1,14 @@
 import unittest
 
-class TestSQLAuthenticatorPlugin(unittest.TestCase):
+class _Base(unittest.TestCase):
+
+    def failUnless(self, predicate, message=''):
+        self.assertTrue(predicate, message) # Nannies go home!
+
+    def failIf(self, predicate, message=''):
+        self.assertFalse(predicate, message) # Nannies go home!
+
+class TestSQLAuthenticatorPlugin(_Base):
 
     def _getTargetClass(self):
         from repoze.who.plugins.sql import SQLAuthenticatorPlugin
@@ -67,7 +75,7 @@
         self.assertEqual(dummy_factory.query, None)
         self.assertEqual(dummy_factory.closed, False)
 
-class TestDefaultPasswordCompare(unittest.TestCase):
+class TestDefaultPasswordCompare(_Base):
 
     def _getFUT(self):
         from repoze.who.plugins.sql import default_password_compare
@@ -113,7 +121,7 @@
         result = compare('notpassword', stored)
         self.assertEqual(result, False)
 
-class TestSQLMetadataProviderPlugin(unittest.TestCase):
+class TestSQLMetadataProviderPlugin(_Base):
 
     def _getTargetClass(self):
         from repoze.who.plugins.sql import SQLMetadataProviderPlugin
@@ -143,7 +151,7 @@
         self.assertEqual(dummy_factory.query, 'select foo from bar')
         self.failIf('__userid' in identity)
 
-class TestMakeSQLAuthenticatorPlugin(unittest.TestCase):
+class TestMakeSQLAuthenticatorPlugin(_Base):
 
     def _getFUT(self):
         from repoze.who.plugins.sql import make_authenticator_plugin
@@ -180,7 +188,7 @@
         self.assertEqual(plugin.conn_factory, DummyConnFactory)
         self.assertEqual(plugin.compare_fn, make_dummy_connfactory)
 
-class TestMakeSQLMetadataProviderPlugin(unittest.TestCase):
+class TestMakeSQLMetadataProviderPlugin(_Base):
 
     def _getFUT(self):
         from repoze.who.plugins.sql import make_metadata_plugin
diff --git a/repoze/who/tests/test__auth_tkt.py b/repoze/who/tests/test__auth_tkt.py
index 386d8e2..cf85f3c 100644
--- a/repoze/who/tests/test__auth_tkt.py
+++ b/repoze/who/tests/test__auth_tkt.py
@@ -1,6 +1,14 @@
 import unittest
 
-class AuthTicketTests(unittest.TestCase):
+class _Base(unittest.TestCase):
+
+    def failUnless(self, predicate, message=''):
+        self.assertTrue(predicate, message) # Nannies go home!
+
+    def failIf(self, predicate, message=''):
+        self.assertFalse(predicate, message) # Nannies go home!
+
+class AuthTicketTests(_Base):
 
     def _getTargetClass(self):
         from .._auth_tkt import AuthTicket
@@ -89,7 +97,7 @@
         self.assertEqual(cookie['oatmeal']['secure'], 'true')
  
 
-class BadTicketTests(unittest.TestCase):
+class BadTicketTests(_Base):
 
     def _getTargetClass(self):
         from .._auth_tkt import BadTicket
@@ -109,7 +117,7 @@
         self.assertEqual(exc.expected, 'foo')
 
 
-class Test_parse_ticket(unittest.TestCase):
+class Test_parse_ticket(_Base):
 
     def _callFUT(self, secret='SEEKRIT', ticket=None, ip='1.2.3.4'):
         from .._auth_tkt import parse_ticket
@@ -168,7 +176,7 @@
         self.assertEqual(user_data, 'DATA')
 
 
-class Test_helpers(unittest.TestCase):
+class Test_helpers(_Base):
 
     # calculate_digest is not very testable, and fully exercised throug callers.
 
diff --git a/repoze/who/tests/test_api.py b/repoze/who/tests/test_api.py
index cb32767..6434067 100644
--- a/repoze/who/tests/test_api.py
+++ b/repoze/who/tests/test_api.py
@@ -1,6 +1,14 @@
 import unittest
 
-class Test_get_api(unittest.TestCase):
+class _Base(unittest.TestCase):
+
+    def failUnless(self, predicate, message=''):
+        self.assertTrue(predicate, message) # Nannies go home!
+
+    def failIf(self, predicate, message=''):
+        self.assertFalse(predicate, message) # Nannies go home!
+
+class Test_get_api(_Base):
 
     def _callFUT(self, environ):
         from repoze.who.api import get_api
@@ -17,7 +25,7 @@
         api = self._callFUT(environ)
         self.failUnless(api is expected)
 
-class APIFactoryTests(unittest.TestCase):
+class APIFactoryTests(_Base):
 
     def _getTargetClass(self):
         from repoze.who.api import APIFactory
@@ -90,7 +98,7 @@
         self.failUnless(api is expected)
 
 
-class TestMakeRegistries(unittest.TestCase):
+class TestMakeRegistries(_Base):
 
     def _callFUT(self, identifiers, authenticators, challengers, mdproviders):
         from repoze.who.api import make_registries
@@ -134,7 +142,7 @@
         self.assertEqual(name_reg['challenger'], dummy_challenger)
         self.assertEqual(name_reg['mdprovider'], dummy_mdprovider)
 
-class TestMatchClassification(unittest.TestCase):
+class TestMatchClassification(_Base):
 
     def _getFUT(self):
         from repoze.who.api import match_classification
@@ -161,7 +169,7 @@
         # any for either
         self.assertEqual(f(IAuthenticator, plugins, 'buz'), [multi1, multi2])
 
-class APITests(unittest.TestCase):
+class APITests(_Base):
 
     def _getTargetClass(self):
         from repoze.who.api import API
@@ -1123,7 +1131,7 @@
         self.assertEqual(identity.get('fuz'), None)
 
 
-class TestIdentityDict(unittest.TestCase):
+class TestIdentityDict(_Base):
 
     def _getTargetClass(self):
         from repoze.who.api import Identity
diff --git a/repoze/who/tests/test_classifiers.py b/repoze/who/tests/test_classifiers.py
index 3776fb7..44af225 100644
--- a/repoze/who/tests/test_classifiers.py
+++ b/repoze/who/tests/test_classifiers.py
@@ -1,6 +1,14 @@
 import unittest
 
-class TestDefaultRequestClassifier(unittest.TestCase):
+class _Base(unittest.TestCase):
+
+    def failUnless(self, predicate, message=''):
+        self.assertTrue(predicate, message) # Nannies go home!
+
+    def failIf(self, predicate, message=''):
+        self.assertFalse(predicate, message) # Nannies go home!
+
+class TestDefaultRequestClassifier(_Base):
 
     def _getFUT(self):
         from repoze.who.classifiers import default_request_classifier
@@ -63,7 +71,7 @@
         self.assertEqual(result, 'browser')
 
 
-class TestDefaultChallengeDecider(unittest.TestCase):
+class TestDefaultChallengeDecider(_Base):
 
     def _getFUT(self):
         from repoze.who.classifiers import default_challenge_decider
@@ -88,7 +96,7 @@
         decider = self._getFUT()
         self.failIf(decider({}, '200 Ok', []))
 
-class TestPassthroughChallengeDecider(unittest.TestCase):
+class TestPassthroughChallengeDecider(_Base):
 
     def _getFUT(self):
         from repoze.who.classifiers import passthrough_challenge_decider
diff --git a/repoze/who/tests/test_config.py b/repoze/who/tests/test_config.py
index 0831dc4..ab900e5 100644
--- a/repoze/who/tests/test_config.py
+++ b/repoze/who/tests/test_config.py
@@ -1,6 +1,14 @@
 import unittest
 
-class TestWhoConfig(unittest.TestCase):
+class _Base(unittest.TestCase):
+
+    def failUnless(self, predicate, message=''):
+        self.assertTrue(predicate, message) # Nannies go home!
+
+    def failIf(self, predicate, message=''):
+        self.assertFalse(predicate, message) # Nannies go home!
+
+class TestWhoConfig(_Base):
 
     def _getTargetClass(self):
         from repoze.who.config import WhoConfig
@@ -342,7 +350,7 @@
 iface = iface
 """
 
-class TestConfigMiddleware(unittest.TestCase):
+class TestConfigMiddleware(_Base):
     _tempdir = None
 
     def setUp(self):
@@ -425,7 +433,7 @@
         self.failUnless(isinstance(handlers[0], NullHandler))
         logging.shutdown()
 
-class NullHandlerTests(unittest.TestCase):
+class NullHandlerTests(_Base):
 
     def _getTargetClass(self):
         from repoze.who.config import NullHandler
@@ -443,7 +451,7 @@
         handler = self._makeOne()
         handler.emit(object())
 
-class Test_make_api_factory_with_config(unittest.TestCase):
+class Test_make_api_factory_with_config(_Base):
     _tempdir = None
     _warning_filters = None
 
diff --git a/repoze/who/tests/test_middleware.py b/repoze/who/tests/test_middleware.py
index adf0790..aa9412c 100644
--- a/repoze/who/tests/test_middleware.py
+++ b/repoze/who/tests/test_middleware.py
@@ -1,6 +1,14 @@
 import unittest
 
-class TestMiddleware(unittest.TestCase):
+class _Base(unittest.TestCase):
+
+    def failUnless(self, predicate, message=''):
+        self.assertTrue(predicate, message) # Nannies go home!
+
+    def failIf(self, predicate, message=''):
+        self.assertFalse(predicate, message) # Nannies go home!
+
+class TestMiddleware(_Base):
 
     def _getTargetClass(self):
         from repoze.who.middleware import PluggableAuthenticationMiddleware
@@ -470,7 +478,7 @@
     # XXX need more call tests:
     #  - auth_id sorting
 
-class TestStartResponseWrapper(unittest.TestCase):
+class TestStartResponseWrapper(_Base):
 
     def _getTargetClass(self):
         from repoze.who.middleware import StartResponseWrapper
@@ -515,7 +523,7 @@
         self.assertEqual(datases[0], 'written')
         self.assertEqual(closededs[0], True)
 
-class WrapGeneratorTests(unittest.TestCase):
+class WrapGeneratorTests(_Base):
 
     def _callFUT(self, iterable):
         from repoze.who.middleware import wrap_generator
@@ -541,7 +549,7 @@
         self.assertEqual(list(newgen), ['a', 'b'])
         self.failUnless(iterable._closed)
 
-class TestMakeTestMiddleware(unittest.TestCase):
+class TestMakeTestMiddleware(_Base):
 
     def setUp(self):
         import os
diff --git a/repoze/who/tests/test_restrict.py b/repoze/who/tests/test_restrict.py
index b91ff0a..4e85d81 100644
--- a/repoze/who/tests/test_restrict.py
+++ b/repoze/who/tests/test_restrict.py
@@ -1,6 +1,14 @@
 import unittest
 
-class AuthenticatedPredicateTests(unittest.TestCase):
+class _Base(unittest.TestCase):
+
+    def failUnless(self, predicate, message=''):
+        self.assertTrue(predicate, message) # Nannies go home!
+
+    def failIf(self, predicate, message=''):
+        self.assertFalse(predicate, message) # Nannies go home!
+
+class AuthenticatedPredicateTests(_Base):
 
     def _getFUT(self):
         from repoze.who.restrict import authenticated_predicate
@@ -21,7 +29,7 @@
         environ = {'repoze.who.identity': {'login': 'fred'}}
         self.failUnless(predicate(environ))
 
-class MakeAuthenticatedRestrictionTests(unittest.TestCase):
+class MakeAuthenticatedRestrictionTests(_Base):
 
     def _getFUT(self):
         from repoze.who.restrict import make_authenticated_restriction
@@ -40,7 +48,7 @@
         self.failUnless(predicate({'REMOTE_USER': 'fred'}))
         self.failUnless(predicate({'repoze.who.identity': {'login': 'fred'}}))
 
-class PredicateRestrictionTests(unittest.TestCase):
+class PredicateRestrictionTests(_Base):
 
     def _getTargetClass(self):
         from repoze.who.restrict import PredicateRestriction
@@ -112,7 +120,7 @@
         self.assertEqual(len(_started), 0)
         self.assertEqual(restrict.app.environ, environ)
 
-class MakePredicateRestrictionTests(unittest.TestCase):
+class MakePredicateRestrictionTests(_Base):
 
     def _getFUT(self):
         from repoze.who.restrict import make_predicate_restriction

--
Gitblit v1.9.3