Files
devplacepy/tests/api/admin/nodes/flags.py
T
retoor 6f80a820da
DevPlace CI / test (push) Failing after 3m13s
Zo doen wijdat in oost
2026-10-16 07:20:44 +02:00

35 lines
1.6 KiB
Python

# retoor <retoor@molodetz.nl>
from devplacepy.database.nodes import list_flags, raise_flag
from tests.api.admin.nodes.conftest import admin_headers, make_admin, make_device
from tests.api.nodes.conftest import make_member
def test_member_cannot_resolve(client):
member = make_member()
assert client.post("/admin/nodes/flags/x/resolve", headers=admin_headers(member)).status_code == 403
def test_resolve_closes_the_flag_once(client, admin):
owner = make_member()
device = make_device(owner["uid"])
flag = raise_flag("refusal_mismatch", device_uid=device["uid"], user_uid=owner["uid"], detail="test")
listed = client.get("/admin/nodes", headers=admin_headers(admin)).json()["flags"]
assert flag["uid"] in {item["uid"] for item in listed}
assert client.post(f"/admin/nodes/flags/{flag['uid']}/resolve", headers=admin_headers(admin)).status_code == 200
assert flag["uid"] not in {item["uid"] for item in list_flags()}
assert client.post(f"/admin/nodes/flags/{flag['uid']}/resolve", headers=admin_headers(admin)).status_code == 409
def test_unknown_flag_is_404(client, admin):
assert client.post("/admin/nodes/flags/nope/resolve", headers=admin_headers(admin)).status_code == 404
def test_junior_admin_cannot_resolve_a_senior_admins_flag(client):
senior = make_admin()
junior = make_admin()
device = make_device(senior["uid"])
flag = raise_flag("integrity_failure", device_uid=device["uid"], user_uid=senior["uid"], detail="test")
client.post(f"/admin/nodes/flags/{flag['uid']}/resolve", headers=admin_headers(junior))
assert flag["uid"] in {item["uid"] for item in list_flags()}