Files
horror/backend/tests/test_users.py
2026-09-16 17:00:35 +02:00

47 lines
2.0 KiB
Python

"""Besitz: Einträge hängen am Namen, ohne Namen an der Sitzung."""
def test_gleicher_name_in_anderem_browser_sieht_eigene_eintraege(
client, client2, anmelden, film
):
anmelden(client, "Anna")
vorschlag = client.post("/api/suggestions", json={"movie_id": film(1)}).json()
client.post("/api/wishlist", json={"movie_id": film(2)})
client.post("/api/features", json={"text": "Dunkles Design"})
# Anna am zweiten Gerät
anmelden(client2, "Anna")
assert client2.get("/api/suggestions").json()["mine"] == vorschlag["id"]
assert client2.get("/api/wishlist").json()[0]["mine"] is True
assert client2.get("/api/features").json()[0]["mine"] is True
# Ben nicht
anmelden(client2, "Ben")
assert client2.get("/api/suggestions").json()["mine"] is None
assert client2.get("/api/wishlist").json()[0]["mine"] is False
assert client2.get("/api/features").json()[0]["mine"] is False
def test_namenswechsel_laesst_alte_eintraege_beim_alten_namen(client, anmelden, film):
anmelden(client, "Anna")
als_anna = client.post("/api/suggestions", json={"movie_id": film(1)}).json()
assert als_anna["name"] == "Anna"
anmelden(client, "Ben")
assert client.get("/api/suggestions").json()["mine"] is None
# Bens Vorschlag ersetzt Annas nicht — einer je Name, nicht je Browser
als_ben = client.post("/api/suggestions", json={"movie_id": film(2)}).json()
liste = client.get("/api/suggestions").json()
assert [e["name"] for e in liste["items"]] == ["Anna", "Ben"]
assert liste["mine"] == als_ben["id"]
anmelden(client, "Anna")
assert client.get("/api/suggestions").json()["mine"] == als_anna["id"]
def test_ohne_namen_zaehlt_die_sitzung(client, client2, film):
vorschlag = client.post("/api/suggestions", json={"movie_id": film(1)}).json()
assert vorschlag["name"] is None
assert client.get("/api/suggestions").json()["mine"] == vorschlag["id"]
assert client2.get("/api/suggestions").json()["mine"] is None