Updated backend tests with new courts

This commit is contained in:
2026-05-24 16:16:12 +02:00 Verified
parent 33e623b337
commit 4cfdbad442
2 changed files with 31 additions and 12 deletions
+20 -3
View File
@@ -7,6 +7,7 @@ from app.database import Base, get_db
# Import your app and models
from app.main import app
from app import models
from fastapi import Request
from httpx import ASGITransport, AsyncClient
from sqlalchemy import create_engine
@@ -43,6 +44,15 @@ def db(prepare_db) -> Generator[Session, None, None]:
connection.close()
@pytest.fixture(autouse=True)
def clean_db(db):
db.query(models.Match).delete()
db.query(models.Team).delete()
db.query(models.Court).delete()
db.commit()
yield
@pytest.fixture(scope="function")
async def client(db: Session) -> AsyncGenerator[AsyncClient, None]:
def override_get_db():
@@ -85,13 +95,20 @@ def auth_headers(client):
@pytest.fixture
def valid_tournament_payload():
async def valid_tournament_payload(db):
# 1. Create global courts first
c1 = models.Court(name="Plan 1")
c2 = models.Court(name="Plan 2")
db.add_all([c1, c2])
db.commit()
# 2. Return payload with IDs
return {
"name": "Test Tournament",
"code": "1234",
"type": "Double",
"timestamp": "2024-01-01T10:00:00",
"timestamp": "2026-05-24T11:00:00",
"duration": 15,
"teams": ["Team A", "Team B", "Team C", "Team D"],
"courts": ["Court 1", "Court 2"],
"courts": [c1.id, c2.id],
}
+11 -9
View File
@@ -44,7 +44,9 @@ async def test_manage_teams(
# Verify the teams are actually in the first match
first_match = final_matches[0]
print(first_match)
assert first_match["p1_team_id"] is not None
assert first_match["p2_team_id"] is not None
p1_name = first_match["p1_team_id"]
p2_name = first_match["p2_team_id"]
@@ -60,21 +62,21 @@ async def test_manage_courts(
)
t_id = res.json()["id"]
# Get initial courts
# 1. Get initial courts from the tournament detail
courts_res = await client.get(f"/tournaments/{t_id}")
initial_courts = courts_res.json()["courts"]
assert len(initial_courts) == 2
# Delete
court_id = initial_courts[0]["id"]
del_res = await client.delete(
f"/tournaments/{t_id}/courts/{court_id}", headers=auth_headers
)
# 2. Extract the ID from the list so the variable is defined!
court_to_delete_id = initial_courts[0]["id"]
# 3. Now use that variable in your delete call
del_res = await client.delete(f"/courts/{court_to_delete_id}", headers=auth_headers)
assert del_res.status_code == 200
# Create
# CREATE: Change this from a tournament-specific route to the global one
create_res = await client.post(
f"/tournaments/{t_id}/courts", json={"name": "New Court"}, headers=auth_headers
"/courts", json={"name": "New Court"}, headers=auth_headers # GLOBAL ROUTE
)
assert create_res.status_code == 200
assert create_res.json()["name"] == "New Court"