test auto_login redirects

This commit is contained in:
Min RK
2017-04-07 15:26:39 +02:00
parent 3cac9a2203
commit a59b0af2b4

View File

@@ -4,8 +4,10 @@ from urllib.parse import urlencode, urlparse
import requests
from ..handlers import BaseHandler
from ..utils import url_path_join as ujoin
from .. import orm
from ..auth import Authenticator
import mock
from .mocking import FormSpawner, public_url, public_host
@@ -253,6 +255,28 @@ def test_login_redirect(app, io_loop):
assert r.headers['Location'].endswith('/hub/admin')
def test_auto_login(app, io_loop, request):
class DummyLoginHandler(BaseHandler):
def get(self):
self.write('ok!')
base_url = public_url(app) + '/'
app.tornado_application.add_handlers(".*$", [
(ujoin(app.hub.server.base_url, 'dummy'), DummyLoginHandler),
])
# no auto_login: end up at /hub/login
r = requests.get(base_url)
assert r.url == public_url(app, path='hub/login')
# enable auto_login: redirect from /hub/login to /hub/dummy
authenticator = Authenticator(auto_login=True)
authenticator.login_url = lambda base_url: ujoin(base_url, 'dummy')
with mock.patch.dict(app.tornado_application.settings, {
'authenticator': authenticator,
}):
r = requests.get(base_url)
assert r.url == public_url(app, path='hub/dummy')
def test_logout(app):
name = 'wash'
cookies = app.login_user(name)