Files
weirsoe-party-protocol/party/tests/test_views.py
T
agw 10652ee219 Storskærm og telefon-UI, 147 danske spørgsmål og drift
Vanilla JS uden build-trin: én WebSocket pr. skærm med automatisk
genforbindelse, tegner altid fra seneste snapshot. Storskærmen viser kode,
QR, nedtælling og en animeret afsløring; telefonen er bygget til store
knapper og genoptager sin plads efter genindlæsning. dev.html viser alle
faser uden server. deploy/ har systemd-unit, deploy-script og en bot-test,
der spiller et helt spil mod en kørende server.

Claude-Session: https://claude.ai/code/session_01JmhJG6JnhXfzNiKv8f2vHu
2026-10-01 20:25:49 +02:00

37 lines
1.5 KiB
Python

from django.test import TestCase, override_settings
from fupogfakta.models import Category, Question
from party import rooms
@override_settings(TRUSTED_PROXIES=["127.0.0.1"], DEV_HOST_USER=None)
class ViewTests(TestCase):
def setUp(self):
rooms.all_rooms().clear()
cat = Category.objects.create(name="Kat")
Question.objects.create(category=cat, prompt="Svaret er _____.", answer="ja", decoys=["a", "b", "c"])
def test_play_page_prefills_code(self):
r = self.client.get("/?code=klmt")
self.assertContains(r, "KLMT")
def test_host_needs_header(self):
self.assertEqual(self.client.get("/host/").status_code, 403)
r = self.client.get("/host/", headers={"x-authentik-username": "agw"})
self.assertEqual(r.status_code, 200)
def test_header_on_open_path_does_not_log_in_admin(self):
self.client.get("/", headers={"x-authentik-username": "evil", "x-authentik-groups": "authentik Admins"})
r = self.client.get("/admin/")
self.assertEqual(r.status_code, 302) # til login
def test_admin_sso_for_admins_group(self):
r = self.client.get("/admin/", headers={"x-authentik-username": "agw", "x-authentik-groups": "authentik Admins|Familie"})
self.assertEqual(r.status_code, 200)
def test_qr_svg(self):
r = self.client.get("/qr/KLMT.svg")
self.assertEqual(r["Content-Type"], "image/svg+xml")
self.assertIn(b"<svg", r.content)
self.assertIn(b'xmlns="http://www.w3.org/2000/svg"', r.content) # ellers vises den ikke som <img>