mirror of
https://github.com/sunrin-ana/2025-SSF.git
synced 2026-03-09 18:40:02 +00:00
45 lines
1.8 KiB
Python
45 lines
1.8 KiB
Python
def test_friendship_flow(client, two_authenticated_users):
|
|
user1 = two_authenticated_users["user1"]
|
|
user2 = two_authenticated_users["user2"]
|
|
|
|
headers1 = {"Authorization": f"Bearer {user1['token']}"}
|
|
headers2 = {"Authorization": f"Bearer {user2['token']}"}
|
|
|
|
# User 1 sends friendship request to User 2
|
|
response = client.post(
|
|
"/api/friendship/request",
|
|
json={"friend_username": user2["username"]},
|
|
headers=headers1,
|
|
)
|
|
assert response.status_code == 200
|
|
friendship_id = response.json()["id"]
|
|
assert response.json()["status"] == "pending"
|
|
|
|
# User 2 accepts friendship request
|
|
response = client.put(f"/api/friendship/{friendship_id}/accept", headers=headers2)
|
|
assert response.status_code == 200
|
|
assert response.json()["status"] == "accepted"
|
|
|
|
# User 1 lists friends
|
|
response = client.get("/api/friendship", headers=headers1)
|
|
assert response.status_code == 200
|
|
assert any(f["id"] == friendship_id for f in response.json())
|
|
|
|
# User 2 lists friends
|
|
response = client.get("/api/friendship", headers=headers2)
|
|
assert response.status_code == 200
|
|
assert any(f["id"] == friendship_id for f in response.json())
|
|
|
|
# User 1 deletes friendship
|
|
response = client.delete(f"/api/friendship/{friendship_id}", headers=headers1)
|
|
assert response.status_code == 200
|
|
assert response.json()["message"] == "Friendship deleted successfully"
|
|
|
|
# Verify deletion for both users
|
|
response = client.get("/api/friendship", headers=headers1)
|
|
assert response.status_code == 200
|
|
assert not any(f["id"] == friendship_id for f in response.json())
|
|
|
|
response = client.get("/api/friendship", headers=headers2)
|
|
assert response.status_code == 200
|
|
assert not any(f["id"] == friendship_id for f in response.json())
|