This commit is contained in:
team3
2026-09-17 12:14:40 +02:00
parent b42cf64782
commit a1684cf54f
11 changed files with 181 additions and 29 deletions

View File

@@ -52,14 +52,36 @@ def frische_db(app_start):
main.letzter_dreh.update(ergebnis=None, start=0.0)
# Ein Client je Person — jeder hält sein eigenes Cookie
def _anmelden(client, name):
"""Namen anlegen, falls nötig, und für diesen Client wählen."""
antwort = client.post("/api/users", json={"name": name})
if antwort.status_code == 200:
user_id = antwort.json()["id"]
else:
runde = client.get("/api/users").json()["items"]
user_id = next(u["id"] for u in runde if u["name"] == name)
return client.post("/api/users/waehlen", json={"user_id": user_id}).json()["mine"]
# Ein Client je Person — jeder hält sein eigenes Cookie. Beide stehen in
# der Runde, denn ohne Namen darf niemand etwas eintragen.
@pytest.fixture
def client():
return TestClient(main.app)
c = TestClient(main.app)
_anmelden(c, "Anna")
return c
@pytest.fixture
def client2():
c = TestClient(main.app)
_anmelden(c, "Ben")
return c
@pytest.fixture
def zuschauer():
"""Ohne gewählten Namen: darf alles lesen, nichts schreiben."""
return TestClient(main.app)
@@ -78,14 +100,4 @@ def film():
@pytest.fixture
def anmelden():
"""Client wählt einen Namen; legt ihn an, falls es ihn noch nicht gibt."""
def waehlen(client, name):
antwort = client.post("/api/users", json={"name": name})
if antwort.status_code == 200:
user_id = antwort.json()["id"]
else:
runde = client.get("/api/users").json()["items"]
user_id = next(u["id"] for u in runde if u["name"] == name)
return client.post("/api/users/waehlen", json={"user_id": user_id}).json()["mine"]
return waehlen
return _anmelden