28 lines
1.3 KiB
Python
28 lines
1.3 KiB
Python
"""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}
|