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

43 lines
1.6 KiB
Python

# retoor <retoor@molodetz.nl>
from devplacepy.database.nodes import LIMITS
from tests.api.admin.nodes.conftest import admin_headers, make_device
from tests.api.nodes.conftest import make_member
def test_guest_is_refused(client):
assert client.get("/admin/nodes", headers={"Accept": "application/json"}).status_code == 401
def test_member_is_refused(client):
member = make_member()
assert client.get("/admin/nodes", headers=admin_headers(member)).status_code == 403
def test_admin_overview_shape(client, admin):
owner = make_member()
device = make_device(owner["uid"], "Overview laptop")
body = client.get("/admin/nodes", headers=admin_headers(admin)).json()
assert set(body["pool"]) >= {"online", "connected", "capacity", "open_circuits"}
assert body["queue"]["max_depth"] == LIMITS.max_queue_depth
assert body["limits"]["max_connected_nodes"] == LIMITS.max_connected_nodes
assert {item["key"] for item in body["settings"]} == {
"nodes_max_total",
"nodes_daily_quota_user",
"nodes_daily_quota_guest",
"nodes_cache_ttl_seconds",
"nodes_daily_social_user",
"nodes_social_via_nodes",
}
listed = {row["uid"]: row for row in body["devices"]}
assert listed[device["uid"]]["owner_username"] == owner["username"]
assert len(body["devices"]) <= 100
assert "secret_hash" not in listed[device["uid"]]
def test_html_page_renders(client, admin):
response = client.get("/admin/nodes", headers=admin["headers"])
assert response.status_code == 200
assert "Community nodes" in response.text
assert "data-live=\"summary\"" in response.text