34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
|
"""Test /whoami."""
|
||
|
|
||
|
|
||
|
def test_whoami(client, auth):
|
||
|
"""Test authenticated whoami."""
|
||
|
|
||
|
for perms in [["READ"], ["CREATE", "MODIFY"], []]:
|
||
|
resp = client.patch(
|
||
|
"/users/jeff", headers=auth("administrator"), json=dict(permissions=perms)
|
||
|
)
|
||
|
assert resp.status_code == 200
|
||
|
resp = client.get("/whoami", headers=auth("jeff"))
|
||
|
assert resp.status_code == 200
|
||
|
data = resp.get_json()
|
||
|
assert data.get("username") == "jeff"
|
||
|
assert data.get("permissions") == perms
|
||
|
|
||
|
|
||
|
def test_anon_whoami(client, auth):
|
||
|
"""Test anonymous whoami."""
|
||
|
|
||
|
for perms in [["READ"], ["CREATE", "MODIFY"], []]:
|
||
|
resp = client.patch(
|
||
|
"/admin/settings",
|
||
|
headers=auth("administrator"),
|
||
|
json=dict(default_permissions=perms),
|
||
|
)
|
||
|
assert resp.status_code == 200
|
||
|
resp = client.get("/whoami")
|
||
|
assert resp.status_code == 200
|
||
|
data = resp.get_json()
|
||
|
assert data.get("username") is None
|
||
|
assert data.get("permissions") == perms
|