def test_anfrage_annehmen_entfernen(login): anna, ben = login("anna"), login("ben") assert anna.post(f"/api/freunde/{ben.user['id']}").json()["outgoing"][0]["name"] == "Ben" state = ben.get("/api/freunde").json() assert [p["name"] for p in state["incoming"]] == ["Anna"] and state["friends"] == [] assert [p["name"] for p in ben.post(f"/api/freunde/{anna.user['id']}").json()["friends"]] == ["Anna"] assert [p["name"] for p in anna.get("/api/freunde").json()["friends"]] == ["Ben"] assert ben.delete(f"/api/freunde/{anna.user['id']}").json()["friends"] == [] assert anna.get("/api/freunde").json()["friends"] == [] def test_eigene_anfrage_nimmt_nicht_selbst_an(login): anna, ben = login("anna"), login("ben") anna.post(f"/api/freunde/{ben.user['id']}") assert anna.post(f"/api/freunde/{ben.user['id']}").json()["friends"] == [] assert anna.post(f"/api/freunde/{anna.user['id']}").status_code == 400 assert anna.post("/api/freunde/9999").status_code == 404 def test_suche(login): anna, ben = login("anna"), login("ben") login("bernd") anna.post(f"/api/freunde/{ben.user['id']}") res = anna.get("/api/freunde/suche", params={"q": "be"}).json() assert [(r["name"], r["status"]) for r in res] == [("Ben", "angefragt"), ("Bernd", None)] assert anna.get("/api/freunde/suche", params={"q": "a"}).json() == [] # zu kurz assert [r["name"] for r in anna.get("/api/freunde/suche", params={"q": "%"}).json()] == []