mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-18 15:33:02 +00:00
test shutdown_on_logout
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
"""Tests for HTML pages"""
|
||||
|
||||
import asyncio
|
||||
import sys
|
||||
from urllib.parse import urlencode, urlparse
|
||||
|
||||
@@ -489,6 +490,51 @@ def test_logout(app):
|
||||
assert r.cookies == {}
|
||||
|
||||
|
||||
@pytest.mark.parametrize('shutdown_on_logout', [True, False])
|
||||
@pytest.mark.gen_test
|
||||
async def test_shutdown_on_logout(app, shutdown_on_logout):
|
||||
name = 'shutitdown'
|
||||
cookies = await app.login_user(name)
|
||||
user = app.users[name]
|
||||
|
||||
# start the user's server
|
||||
await user.spawn()
|
||||
spawner = user.spawner
|
||||
|
||||
# wait for any pending state to resolve
|
||||
for i in range(50):
|
||||
if not spawner.pending:
|
||||
break
|
||||
await asyncio.sleep(0.1)
|
||||
else:
|
||||
assert False, "Spawner still pending"
|
||||
assert spawner.active
|
||||
|
||||
# logout
|
||||
with mock.patch.dict(app.tornado_settings, {
|
||||
'shutdown_on_logout': shutdown_on_logout,
|
||||
}):
|
||||
r = await async_requests.get(
|
||||
public_host(app) + app.tornado_settings['logout_url'],
|
||||
cookies=cookies,
|
||||
)
|
||||
r.raise_for_status()
|
||||
|
||||
login_url = public_host(app) + app.tornado_settings['login_url']
|
||||
assert r.url == login_url
|
||||
assert r.cookies == {}
|
||||
|
||||
# wait for any pending state to resolve
|
||||
for i in range(50):
|
||||
if not spawner.pending:
|
||||
break
|
||||
await asyncio.sleep(0.1)
|
||||
else:
|
||||
assert False, "Spawner still pending"
|
||||
|
||||
assert spawner.ready == (not shutdown_on_logout)
|
||||
|
||||
|
||||
@pytest.mark.gen_test
|
||||
def test_login_no_whitelist_adds_user(app):
|
||||
auth = app.authenticator
|
||||
|
Reference in New Issue
Block a user