diff options
| author | ianb <devnull@localhost> | 2005-08-22 21:41:23 +0000 |
|---|---|---|
| committer | ianb <devnull@localhost> | 2005-08-22 21:41:23 +0000 |
| commit | 2b234d342643c388d7c97324493e6344ed1bc367 (patch) | |
| tree | bd43f07a4e11c63f8c1c2045e0ddce975db28687 /tests | |
| parent | 181bdc5a64903c342fea744e7f6717b6b09811d7 (diff) | |
| download | paste-2b234d342643c388d7c97324493e6344ed1bc367.tar.gz | |
Moved test
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_authentication.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/test_authentication.py b/tests/test_authentication.py new file mode 100644 index 0000000..418dbd8 --- /dev/null +++ b/tests/test_authentication.py @@ -0,0 +1,72 @@ +from paste import wsgilib +from paste import login +from paste.fixture import * + +from_cmdline = 0 + +def application(environ, start_response): + if environ.has_key('REMOTE_USER'): + start_response('200 OK', [('Content-type', 'text/plain')]) + return ['Logged in: ' + environ['REMOTE_USER']] + else: + start_response('401 Unauthorized', + [('Content-type', 'text/plain')]) + return ['Not logged in.'] + +class AuthTest(login.Authenticator): + def check_auth(self, username, password): + return username == password + +def report(res): + if from_cmdline: + print res + +# @@ this should be part of a test fixture, I think +def mk_basic_auth_app(**kw): + kw['http_login'] = True + kw['authenticator'] = AuthTest + app = login.middleware(application, **kw) + testapp = TestApp(app) + return testapp + +def test_basicauth_noauth(): + res = mk_basic_auth_app().get('/', status=401) + report(res) + +def run_userpass(user, password, status=200): + userpass = user + ':' + password + env = {'AUTHORIZATION' : 'Basic ' + userpass.encode('base64')} + return mk_basic_auth_app().get('/', headers=env, status=status) + +def test_basicauth_okuser(): + res = run_userpass('test', 'test') # should succeed + report(res) + +def test_basicauth_baduser(): + res = run_userpass('test', 'badpass', + status=401) # should succeed + report(res) + +def test_basicauth_cookie(): + res = run_userpass('test', 'test') # should succeed + report(res) + cookie_val = res.header('SET-COOKIE') + print "cookie value", cookie_val + app = mk_basic_auth_app() + env = {'Cookie': cookie_val} + res = app.get('/', headers=env) + report(res) + + # ensure that secret is actually used + res = mk_basic_auth_app(secret='bogus').get( + '/', headers=env, status=401, expect_errors=True) + report(res) + +if __name__ == '__main__': + from_cmdline = 1 + test_basicauth_noauth() + test_basicauth_okuser() + test_basicauth_baduser() + test_basicauth_cookie() + + |
