"""Der Spendenbaum: ein Blatt je Person, nur der Host pflegt ihn.""" def test_ein_blatt_je_person_nur_vom_host(client, zuschauer, hostmodus, anmelden): anmelden(client, "Anna") anna = client.get("/api/users").json()["mine"]["id"] assert client.get("/api/spenden").json() == [] assert client.post("/api/spenden", json={"user_id": anna}).status_code == 403 hostmodus(zuschauer) blaetter = zuschauer.post("/api/spenden", json={"user_id": anna}).json() assert [b["name"] for b in blaetter] == ["Anna"] # Ein zweites Mal: immer noch ein Blatt assert len(zuschauer.post("/api/spenden", json={"user_id": anna}).json()) == 1 assert client.get("/api/spenden").json()[0]["name"] == "Anna" assert client.delete(f"/api/spenden/{anna}").status_code == 403 assert zuschauer.delete(f"/api/spenden/{anna}").json() == [] def test_kontostand_setzt_nur_der_host(client, zuschauer, hostmodus): assert client.get("/api/kontostand").json() == {"betrag": None} assert client.put("/api/kontostand", json={"betrag": 12.5}).status_code == 403 hostmodus(zuschauer) assert zuschauer.put("/api/kontostand", json={"betrag": 12.5}).json() == {"betrag": 12.5} assert client.get("/api/kontostand").json() == {"betrag": 12.5} assert zuschauer.put("/api/kontostand", json={"betrag": None}).json() == {"betrag": None}