mirror of
https://github.com/jupyterhub/the-littlest-jupyterhub.git
synced 2025-12-18 21:54:05 +08:00
Pass xsrf token in tests to /hub/api requests
This commit is contained in:
@@ -389,7 +389,9 @@ async def test_idle_server_culled():
|
|||||||
)
|
)
|
||||||
|
|
||||||
async with User(username, hub_url, partial(login_dummy, password="")) as u:
|
async with User(username, hub_url, partial(login_dummy, password="")) as u:
|
||||||
|
# Login the user
|
||||||
await u.login()
|
await u.login()
|
||||||
|
|
||||||
# Start user's server
|
# Start user's server
|
||||||
await u.ensure_server_simulate()
|
await u.ensure_server_simulate()
|
||||||
# Assert that the user exists
|
# Assert that the user exists
|
||||||
@@ -400,12 +402,23 @@ async def test_idle_server_culled():
|
|||||||
r = await u.session.get(user_url, allow_redirects=False)
|
r = await u.session.get(user_url, allow_redirects=False)
|
||||||
assert r.status == 200
|
assert r.status == 200
|
||||||
|
|
||||||
|
# Extract the xsrf token from the _xsrf cookie set after visiting
|
||||||
|
# /hub/login with the u.session
|
||||||
|
hub_cookie = u.session.cookie_jar.filter_cookies(str(u.hub_url / "hub/api/user"))
|
||||||
|
assert "_xsrf" in hub_cookie
|
||||||
|
hub_xsrf_token = hub_cookie["_xsrf"].value
|
||||||
|
|
||||||
# Check that we can talk to JupyterHub itself
|
# Check that we can talk to JupyterHub itself
|
||||||
# use this as a proxy for whether the user still exists
|
# use this as a proxy for whether the user still exists
|
||||||
async def hub_api_request():
|
async def hub_api_request():
|
||||||
r = await u.session.get(
|
r = await u.session.get(
|
||||||
u.hub_url / "hub/api/user",
|
u.hub_url / "hub/api/user",
|
||||||
headers={"Referer": str(u.hub_url / "hub/")},
|
headers={
|
||||||
|
# Referer is needed for JupyterHub <=3
|
||||||
|
"Referer": str(u.hub_url / "hub/"),
|
||||||
|
# X-XSRFToken is needed for JupyterHub >=4
|
||||||
|
"X-XSRFToken": hub_xsrf_token,
|
||||||
|
},
|
||||||
allow_redirects=False,
|
allow_redirects=False,
|
||||||
)
|
)
|
||||||
return r
|
return r
|
||||||
|
|||||||
Reference in New Issue
Block a user