"""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