repoze/who/plugins/tests/test_authtkt.py | ●●●●● patch | view | raw | blame | history | |
repoze/who/plugins/tests/test_basicauth.py | ●●●●● patch | view | raw | blame | history | |
repoze/who/plugins/tests/test_htpasswd.py | ●●●●● patch | view | raw | blame | history | |
repoze/who/plugins/tests/test_redirector.py | ●●●●● patch | view | raw | blame | history | |
repoze/who/plugins/tests/test_sql.py | ●●●●● patch | view | raw | blame | history | |
repoze/who/tests/test__auth_tkt.py | ●●●●● patch | view | raw | blame | history | |
repoze/who/tests/test__compat.py | ●●●●● patch | view | raw | blame | history | |
repoze/who/tests/test_api.py | ●●●●● patch | view | raw | blame | history | |
repoze/who/tests/test_classifiers.py | ●●●●● patch | view | raw | blame | history | |
repoze/who/tests/test_config.py | ●●●●● patch | view | raw | blame | history | |
repoze/who/tests/test_middleware.py | ●●●●● patch | view | raw | blame | history | |
repoze/who/tests/test_restrict.py | ●●●●● patch | view | raw | blame | history |
repoze/who/plugins/tests/test_authtkt.py
@@ -18,9 +18,6 @@ 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 @@ -416,7 +413,7 @@ userid = b'\xc2\xa9'.decode('utf-8') if type(b'') == type(''): userdata = 'userid_type:unicode' else: # XXX else: # pragma: no cover Py3k userdata = '' new_val = self._makeTicket(userid=userid.encode('utf-8'), userdata=userdata) repoze/who/plugins/tests/test_basicauth.py
@@ -13,9 +13,6 @@ 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 = {} repoze/who/plugins/tests/test_htpasswd.py
@@ -11,11 +11,9 @@ plugin = self._getTargetClass()(*arg, **kw) return plugin def _makeEnviron(self, kw=None): def _makeEnviron(self): environ = {} environ['wsgi.version'] = (1,0) if kw is not None: environ.update(kw) return environ def failUnless(self, predicate, message=''): @@ -99,7 +97,7 @@ import os here = os.path.abspath(os.path.dirname(__file__)) htpasswd = os.path.join(here, 'fixtures', 'test.htpasswd.nonesuch') def check(password, hashed): def check(password, hashed): # pragma: no cover return True plugin = self._makeOne(htpasswd, check) environ = self._makeEnviron() @@ -118,7 +116,7 @@ import sys # win32 does not have a crypt library, don't # fail here if "win32" == sys.platform: if "win32" == sys.platform: # pragma: no cover return from crypt import crypt repoze/who/plugins/tests/test_redirector.py
@@ -5,9 +5,6 @@ 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): @@ -26,22 +23,12 @@ reason_param=reason_param, reason_header=reason_header) def _makeEnviron(self, login=None, password=None, came_from=None, path_info='/', identifier=None, max_age=None): def _makeEnviron(self, path_info='/', identifier=None): from repoze.who._compat import StringIO fields = [] if login: fields.append(('login', login)) if password: fields.append(('password', password)) if came_from: fields.append(('came_from', came_from)) if max_age: fields.append(('max_age', max_age)) if identifier is None: credentials = {'login':'chris', 'password':'password'} identifier = DummyIdentifier(credentials) content_type, body = encode_multipart_formdata(fields) content_type, body = encode_multipart_formdata() environ = {'wsgi.version': (1,0), 'wsgi.input': StringIO(body), 'wsgi.url_scheme':'http', @@ -341,7 +328,7 @@ self.assertEqual(plugin.reason_param, 'why') self.assertEqual(plugin.reason_header, 'X-Reason') class DummyIdentifier: class DummyIdentifier(object): forgotten = False remembered = False @@ -352,19 +339,6 @@ self.forget_headers = forget_headers self.replace_app = replace_app def identify(self, environ): if self.replace_app: environ['repoze.who.application'] = self.replace_app return self.credentials def forget(self, environ, identity): self.forgotten = identity return self.forget_headers def remember(self, environ, identity): self.remembered = identity return self.remember_headers class DummyStartResponse: def __call__(self, status, headers, exc_info=None): self.status = status @@ -372,15 +346,10 @@ self.exc_info = exc_info return [] def encode_multipart_formdata(fields): def encode_multipart_formdata(): BOUNDARY = '----------ThIs_Is_tHe_bouNdaRY_$' CRLF = '\r\n' L = [] for (key, value) in fields: L.append('--' + BOUNDARY) L.append('Content-Disposition: form-data; name="%s"' % key) L.append('') L.append(value) L.append('--' + BOUNDARY + '--') L.append('') body = CRLF.join(L) repoze/who/plugins/tests/test_sql.py
@@ -2,9 +2,6 @@ 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! @@ -18,11 +15,9 @@ plugin = self._getTargetClass()(*arg, **kw) return plugin def _makeEnviron(self, kw=None): def _makeEnviron(self): environ = {} environ['wsgi.version'] = (1,0) if kw is not None: environ.update(kw) return environ def test_implements(self): @@ -84,9 +79,9 @@ def _get_sha_hex_digest(self, clear='password'): try: from hashlib import sha1 except ImportError: except ImportError: # pragma: no cover Py3k from sha import new as sha1 if not isinstance(clear, type(b'')): if not isinstance(clear, type(b'')): # pragma: no cover Py3k clear = clear.encode('utf-8') return sha1(clear).hexdigest() repoze/who/tests/test__auth_tkt.py
@@ -5,9 +5,6 @@ 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): @@ -131,7 +128,7 @@ except BadTicket as e: self.failUnless(e.args[0].startswith( 'Timestamp is not a hex integer:')) else: else: # pragma: no cover self.fail('Did not raise') def test_no_bang_after_userid(self): @@ -141,7 +138,7 @@ self._callFUT(ticket=TICKET) except BadTicket as e: self.assertEqual(e.args[0], 'userid is not followed by !') else: else: # pragma: no cover self.fail('Did not raise') def test_wo_tokens_or_data_bad_digest(self): @@ -151,7 +148,7 @@ self._callFUT(ticket=TICKET) except BadTicket as e: self.assertEqual(e.args[0], 'Digest signature is not correct') else: else: # pragma: no cover self.fail('Did not raise') def test_wo_tokens_or_data_ok_digest(self): repoze/who/tests/test__compat.py
@@ -5,9 +5,6 @@ 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_REQUEST_METHOD_miss(self): # PEP 3333 says CONTENT_TYPE is mandatory from .._compat import REQUEST_METHOD repoze/who/tests/test_api.py
@@ -356,9 +356,10 @@ self.assertEqual(result, None) self.assertEqual(environ['challenged'], None) self.assertEqual(identifier.forgotten, identity) self.assertEqual(len(logger._info), 2) self.assertEqual(len(logger._info), 3) self.assertEqual(logger._info[0], 'request classification: match') self.assertEqual(logger._info[1], 'no challenge app returned') self.failUnless(logger._info[1].startswith('forgetting via headers ')) self.assertEqual(logger._info[2], 'no challenge app returned') self.assertEqual(len(logger._debug), 2) self.failUnless(logger._debug[0].startswith( 'challengers registered: [')) @@ -387,10 +388,11 @@ self.assertEqual(result, app) self.assertEqual(environ['challenged'], app) self.assertEqual(identifier.forgotten, identity) self.assertEqual(len(logger._info), 2) self.assertEqual(len(logger._info), 3) self.assertEqual(logger._info[0], 'request classification: match') self.failUnless(logger._info[1].startswith('challenger plugin ')) self.failUnless(logger._info[1].endswith( self.failUnless(logger._info[1].startswith('forgetting via headers ')) self.failUnless(logger._info[2].startswith('challenger plugin ')) self.failUnless(logger._info[2].endswith( '"challenge" returned an app')) self.assertEqual(len(logger._debug), 2) self.failUnless(logger._debug[0].startswith( @@ -504,14 +506,7 @@ self.assertEqual(identifier.forgotten, identity) def test_remember_identifier_plugin_returns_none(self): class _Identifier: def identify(self, environ): return None def remember(self, environ, identity): return () def forget(self, environ, identity): return () identity = {'identifier': _Identifier()} identity = {'identifier': DummyNoResultsIdentifier()} api = self._makeOne() headers = api.remember(identity=identity) self.assertEqual(tuple(headers), ()) @@ -527,11 +522,9 @@ def test_remember_no_identity_passed_but_in_environ(self): HEADERS = [('Foo', 'Bar'), ('Baz', 'Qux')] logger = DummyLogger() class _Identifier: def remember(self, environ, identity): return HEADERS environ = self._makeEnviron() environ['repoze.who.identity'] = {'identifier': _Identifier()} environ['repoze.who.identity'] = { 'identifier': DummyIdentifier(remember_headers=HEADERS)} api = self._makeOne(environ=environ, logger=logger) self.assertEqual(api.remember(), HEADERS) self.assertEqual(len(logger._info), 2) @@ -554,12 +547,9 @@ def test_remember_w_identity_passed_w_identifier(self): HEADERS = [('Foo', 'Bar'), ('Baz', 'Qux')] logger = DummyLogger() class _Identifier: def remember(self, environ, identity): return HEADERS environ = self._makeEnviron() api = self._makeOne(environ=environ, logger=logger) identity = {'identifier': _Identifier()} identity = {'identifier': DummyIdentifier(remember_headers=HEADERS)} self.assertEqual(api.remember(identity), HEADERS) self.assertEqual(len(logger._info), 2) self.assertEqual(logger._info[0], 'request classification: browser') @@ -569,14 +559,7 @@ self.assertEqual(len(logger._debug), 0) def test_forget_identifier_plugin_returns_none(self): class _Identifier: def identify(self, environ): return None def remember(self, environ, identity): return () def forget(self, environ, identity): return () identity = {'identifier': _Identifier()} identity = {'identifier': DummyNoResultsIdentifier()} api = self._makeOne() headers = api.forget(identity=identity) self.assertEqual(tuple(headers), ()) @@ -593,11 +576,9 @@ def test_forget_no_identity_passed_but_in_environ(self): HEADERS = [('Foo', 'Bar'), ('Baz', 'Qux')] logger = DummyLogger() class _Identifier: def forget(self, environ, identity): return HEADERS environ = self._makeEnviron() environ['repoze.who.identity'] = {'identifier': _Identifier()} environ['repoze.who.identity'] = { 'identifier': DummyIdentifier(forget_headers=HEADERS)} api = self._makeOne(environ=environ, logger=logger) self.assertEqual(api.forget(), HEADERS) self.assertEqual(len(logger._info), 2) @@ -620,12 +601,9 @@ def test_forget_w_identity_passed_w_identifier(self): HEADERS = [('Foo', 'Bar'), ('Baz', 'Qux')] logger = DummyLogger() class _Identifier: def forget(self, environ, identity): return HEADERS environ = self._makeEnviron() api = self._makeOne(environ=environ, logger=logger) identity = {'identifier': _Identifier()} identity = {'identifier': DummyIdentifier(forget_headers=HEADERS)} self.assertEqual(api.forget(identity), HEADERS) self.assertEqual(len(logger._info), 2) self.assertEqual(logger._info[0], 'request classification: browser') @@ -637,53 +615,28 @@ def test_login_w_identifier_name_hit(self): REMEMBER_HEADERS = [('Foo', 'Bar'), ('Baz', 'Qux')] FORGET_HEADERS = [('Spam', 'Blah')] class _Identifier: def identify(self, environ): pass def remember(self, environ, identity): return REMEMBER_HEADERS[1:] def forget(self, environ, identity): return FORGET_HEADERS class _BogusIdentifier: def identify(self, environ): pass def remember(self, environ, identity): return REMEMBER_HEADERS[:1] def forget(self, environ, identity): pass authenticator = DummyAuthenticator('chrisid') environ = self._makeEnviron() identifiers = [('bogus', _BogusIdentifier()), ('valid', _Identifier()), identifiers = [('bogus', DummyNoResultsIdentifier()), ('valid', DummyIdentifier( remember_headers=REMEMBER_HEADERS)), ] api = self._makeOne(identifiers=identifiers, authenticators=[('authentic', authenticator)], environ=environ) identity, headers = api.login({'login': 'chrisid'}, 'valid') self.assertEqual(identity['repoze.who.userid'], 'chrisid') self.assertEqual(headers, REMEMBER_HEADERS[1:]) self.assertEqual(headers, REMEMBER_HEADERS) def test_login_wo_identifier_name_hit(self): REMEMBER_HEADERS = [('Foo', 'Bar'), ('Baz', 'Qux')] FORGET_HEADERS = [('Spam', 'Blah')] class _Identifier: def identify(self, environ): pass def remember(self, environ, identity): return REMEMBER_HEADERS[1:] def forget(self, environ, identity): return FORGET_HEADERS class _BogusIdentifier: def identify(self, environ): pass def remember(self, environ, identity): return REMEMBER_HEADERS[:1] def forget(self, environ, identity): pass authenticator = DummyAuthenticator('chrisid') environ = self._makeEnviron() identifiers = [('bogus', _BogusIdentifier()), ('valid', _Identifier()), identifiers = [('bogus', DummyIdentifier( remember_headers=REMEMBER_HEADERS[:1])), ('valid', DummyIdentifier( remember_headers=REMEMBER_HEADERS[1:])), ] api = self._makeOne(identifiers=identifiers, authenticators=[('authentic', authenticator)], @@ -695,24 +648,12 @@ def test_login_w_identifier_name_miss(self): REMEMBER_HEADERS = [('Foo', 'Bar'), ('Baz', 'Qux')] FORGET_HEADERS = [('Spam', 'Blah')] class _Identifier: def identify(self, environ): pass def remember(self, environ, identity): return REMEMBER_HEADERS def forget(self, environ, identity): return FORGET_HEADERS class _BogusIdentifier: def identify(self, environ): pass def remember(self, environ, identity): return () def forget(self, environ, identity): return () authenticator = DummyFailAuthenticator() environ = self._makeEnviron() identifiers = [('bogus', _BogusIdentifier()), ('valid', _Identifier()), identifiers = [('bogus', DummyNoResultsIdentifier()), ('valid', DummyIdentifier( remember_headers=REMEMBER_HEADERS, forget_headers=FORGET_HEADERS)), ] api = self._makeOne(identifiers=identifiers, authenticators=[('authentic', authenticator)], @@ -723,23 +664,11 @@ def test_logout_wo_identifier_name_miss(self): FORGET_HEADERS = [('Spam', 'Blah')] class _Identifier: def identify(self, environ): pass def remember(self, environ, identity): return () def forget(self, environ, identity): return FORGET_HEADERS[:1] class _BogusIdentifier: def identify(self, environ): pass def remember(self, environ, identity): return () def forget(self, environ, identity): return FORGET_HEADERS[1:] environ = self._makeEnviron() identifiers = [('valid', _Identifier()), ('bogus', _BogusIdentifier()), identifiers = [('valid', DummyIdentifier( forget_headers=FORGET_HEADERS[:1])), ('bogus', DummyIdentifier( forget_headers=FORGET_HEADERS[1:])), ] api = self._makeOne(identifiers=identifiers, environ=environ) @@ -748,23 +677,10 @@ def test_logout_w_identifier_name(self): FORGET_HEADERS = [('Spam', 'Blah')] class _Identifier: def identify(self, environ): pass def remember(self, environ, identity): return () def forget(self, environ, identity): return FORGET_HEADERS class _BogusIdentifier: def identify(self, environ): pass def remember(self, environ, identity): return () def forget(self, environ, identity): return () environ = self._makeEnviron() identifiers = [('bogus', _BogusIdentifier()), ('valid', _Identifier()), identifiers = [('bogus', DummyNoResultsIdentifier()), ('valid', DummyIdentifier( forget_headers=FORGET_HEADERS)), ] api = self._makeOne(identifiers=identifiers, environ=environ) @@ -774,24 +690,11 @@ def test_logout_wo_identifier_name(self): REMEMBER_HEADERS = [('Foo', 'Bar'), ('Baz', 'Qux')] FORGET_HEADERS = [('Spam', 'Blah')] class _Identifier: def identify(self, environ): pass def remember(self, environ, identity): return REMEMBER_HEADERS def forget(self, environ, identity): return FORGET_HEADERS class _BogusIdentifier: def identify(self, environ): pass def remember(self, environ, identity): return () def forget(self, environ, identity): return () authenticator = DummyFailAuthenticator() environ = self._makeEnviron() identifiers = [('valid', _Identifier()), ('bogus', _BogusIdentifier()), identifiers = [('bogus', DummyNoResultsIdentifier()), ('valid', DummyIdentifier( forget_headers=FORGET_HEADERS)), ] api = self._makeOne(identifiers=identifiers, authenticators=[('authentic', authenticator)], @@ -800,17 +703,10 @@ self.assertEqual(headers, FORGET_HEADERS) def test_logout_removes_repoze_who_identity(self): class _Identifier: def identify(self, environ): pass def forget(self, environ, identity): return () def remember(self, environ, identity): return () authenticator = DummyFailAuthenticator() environ = self._makeEnviron() environ['repoze.who.identity'] = 'identity' identifiers = [('valid', _Identifier())] identifiers = [('valid', DummyNoResultsIdentifier())] api = self._makeOne(identifiers=identifiers, authenticators=[('authentic', authenticator)], environ=environ) @@ -1153,20 +1049,17 @@ class DummyIdentifier: class DummyIdentifier(object): forgotten = False remembered = False def __init__(self, credentials=None, remember_headers=None, forget_headers=None, replace_app=None): def __init__(self, credentials=None, remember_headers=(), forget_headers=()): self.credentials = credentials self.remember_headers = remember_headers self.forget_headers = forget_headers self.replace_app = replace_app def identify(self, environ): if self.replace_app: environ['repoze.who.application'] = self.replace_app return self.credentials def forget(self, environ, identity): @@ -1178,19 +1071,19 @@ return self.remember_headers class DummyNoResultsIdentifier: class DummyNoResultsIdentifier(object): def identify(self, environ): return None def remember(self, *arg, **kw): pass return () def forget(self, *arg, **kw): pass return () class DummyAuthenticator: class DummyAuthenticator(object): def __init__(self, userid=None): self.userid = userid @@ -1200,12 +1093,12 @@ return self.userid class DummyFailAuthenticator: class DummyFailAuthenticator(object): def authenticate(self, environ, credentials): return None class DummyChallenger: class DummyChallenger(object): _challenged_with = None def __init__(self, app=None): self.app = app @@ -1216,7 +1109,7 @@ return self.app class DummyMDProvider: class DummyMDProvider(object): def __init__(self, metadata=None): self._metadata = metadata @@ -1224,30 +1117,25 @@ return identity.update(self._metadata) class DummyMultiPlugin: class DummyMultiPlugin(object): pass class DummyRequestClassifier: class DummyRequestClassifier(object): def __call__(self, environ): return 'browser' class DummyChallengeDecider: def __call__(self, environ, status, headers): if status.startswith('401 '): return True class DummyChallengeDecider(object): pass class DummyLogger: class DummyLogger(object): _info = _debug = () def info(self, msg): self._info += (msg,) def debug(self, msg): self._debug += (msg,) class DummyApp: class DummyApp(object): environ = None def __call__(self, environ, start_response): self.environ = environ return [] repoze/who/tests/test_classifiers.py
@@ -77,13 +77,6 @@ from repoze.who.classifiers import default_challenge_decider return default_challenge_decider def _makeEnviron(self, kw=None): environ = {} environ['wsgi.version'] = (1,0) if kw is not None: environ.update(kw) return environ def test_conforms_to_IChallengeDecider(self): from repoze.who.interfaces import IChallengeDecider self.failUnless(IChallengeDecider.providedBy(self._getFUT())) @@ -101,13 +94,6 @@ def _getFUT(self): from repoze.who.classifiers import passthrough_challenge_decider return passthrough_challenge_decider def _makeEnviron(self, kw=None): environ = {} environ['wsgi.version'] = (1,0) if kw is not None: environ.update(kw) return environ def test_conforms_to_IChallengeDecider(self): from repoze.who.interfaces import IChallengeDecider repoze/who/tests/test_config.py
@@ -5,9 +5,6 @@ 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): @@ -459,7 +456,6 @@ class Test_make_api_factory_with_config(_Base): _tempdir = None _warning_filters = None def setUp(self): pass @@ -468,9 +464,6 @@ if self._tempdir is not None: import shutil shutil.rmtree(self._tempdir) if self._warning_filters is not None: import warnings warnings.filters[:] = self._warning_filters def _getFactory(self): from repoze.who.config import make_api_factory_with_config @@ -598,8 +591,3 @@ class DummyApp: environ = None def __call__(self, environ, start_response): self.environ = environ return [] repoze/who/tests/test_middleware.py
@@ -5,9 +5,6 @@ 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): @@ -542,7 +539,7 @@ def test_w_empty_generator(self): def gen(): if False: yield 'a' yield 'a' # pragma: no cover newgen = self._callFUT(gen()) self.assertEqual(list(newgen), []) @@ -560,15 +557,17 @@ def setUp(self): import os self._old_WHO_LOG = os.environ.get('WHO_LOG') try: del os.environ['WHO_LOG'] except KeyError: pass def tearDown(self): import os if self._old_WHO_LOG is not None: os.environ['WHO_LOG'] = self._old_WHO_LOG else: if 'WHO_LOG' in os.environ: del os.environ['WHO_LOG'] try: del os.environ['WHO_LOG'] except KeyError: pass def _getFactory(self): from repoze.who.middleware import make_test_middleware @@ -596,13 +595,13 @@ middleware = factory(app, global_conf) self.assertEqual(middleware.logger.getEffectiveLevel(), logging.DEBUG) class DummyApp: class DummyApp(object): environ = None def __call__(self, environ, start_response): self.environ = environ return [] class DummyWorkingApp: class DummyWorkingApp(object): def __init__(self, status, headers): self.status = status self.headers = headers @@ -612,7 +611,7 @@ start_response(self.status, self.headers) return ['body'] class DummyGeneratorApp: class DummyGeneratorApp(object): def __init__(self, status, headers): self.status = status self.headers = headers @@ -624,7 +623,7 @@ yield 'body' return gen() class DummyIterableWithClose: class DummyIterableWithClose(object): _closed = False def __init__(self, iterable): self._iterable = iterable @@ -633,7 +632,7 @@ def close(self): self._closed = True class DummyIterableWithCloseApp: class DummyIterableWithCloseApp(object): def __init__(self, status, headers): self.status = status self.headers = headers @@ -644,7 +643,7 @@ start_response(self.status, self.headers) return self._iterable class DummyIdentityResetApp: class DummyIdentityResetApp(object): def __init__(self, status, headers, new_identity): self.status = status self.headers = headers @@ -657,7 +656,7 @@ start_response(self.status, self.headers) return ['body'] class DummyChallenger: class DummyChallenger(object): def __init__(self, app=None): self.app = app @@ -665,7 +664,7 @@ environ['challenged'] = self.app return self.app class DummyIdentifier: class DummyIdentifier(object): forgotten = False remembered = False @@ -689,51 +688,29 @@ self.remembered = identity return self.remember_headers class DummyAuthenticator: def __init__(self, userid=None): self.userid = userid class DummyAuthenticator(object): def authenticate(self, environ, credentials): if self.userid is None: return credentials['login'] return self.userid return credentials['login'] class DummyFailAuthenticator: def authenticate(self, environ, credentials): return None class DummyRequestClassifier: class DummyRequestClassifier(object): def __call__(self, environ): return 'browser' class DummyChallengeDecider: class DummyChallengeDecider(object): def __call__(self, environ, status, headers): if status.startswith('401 '): return True class DummyNoResultsIdentifier: def identify(self, environ): return None def remember(self, *arg, **kw): pass def forget(self, *arg, **kw): pass class DummyStartResponse: class DummyStartResponse(object): def __call__(self, status, headers, exc_info=None): self.status = status self.headers = headers self.exc_info = exc_info return [] class DummyMDProvider: class DummyMDProvider(object): def __init__(self, metadata=None): self._metadata = metadata def add_metadata(self, environ, identity): return identity.update(self._metadata) class DummyMultiPlugin: pass repoze/who/tests/test_restrict.py
@@ -36,7 +36,6 @@ return make_authenticated_restriction def test_enabled(self): from repoze.who.restrict import authenticated_predicate fut = self._getFUT() app = DummyApp() @@ -62,21 +61,18 @@ def test___call___disabled_predicate_false_calls_app_not_predicate(self): _tested = [] def _factory(): def _predicate(env): _tested.append(env) return False def _predicate(env): # pragma: no cover assert False return _predicate _started = [] def _start_response(status, headers): _started.append((status, headers)) assert False # pragma: no cover environ = {'testing': True} restrict = self._makeOne(predicate=_factory, enabled=False) restrict(environ, _start_response) self.assertEqual(len(_tested), 0) self.assertEqual(len(_started), 0) self.assertEqual(restrict.app.environ, environ) def test___call___enabled_predicate_false_returns_401(self): @@ -108,16 +104,14 @@ return True return _predicate _started = [] def _start_response(status, headers): _started.append((status, headers)) assert False # pragma: no cover environ = {'testing': True, 'REMOTE_USER': 'fred'} restrict = self._makeOne(predicate=_factory) restrict(environ, _start_response) self.assertEqual(len(_tested), 1) self.assertEqual(len(_started), 0) self.assertEqual(restrict.app.environ, environ) class MakePredicateRestrictionTests(_Base): @@ -130,7 +124,7 @@ fut = self._getFUT() app = DummyApp() def _predicate(env): return True return True # pragma: no cover def _factory(): return _predicate @@ -166,14 +160,12 @@ self.failUnless(filter.enabled) class DummyApp: class DummyApp(object): environ = None def __call__(self, environ, start_response): self.environ = environ return [] class DummyPredicate: class DummyPredicate(object): def __init__(self, **kw): self.__dict__.update(kw) def __call__(self, env): return True