Skip to content

Commit 8cb5ae2

Browse files
author
laurence
committed
Merge remote-tracking branch 'origin/bug/clubs-should-not-be-able-to-use-more-than-their-points-allowed'
# Conflicts: # server.py # templates/booking.html # test/tests_unitaires/test_server.py
2 parents 60dcbf4 + 2400c21 commit 8cb5ae2

File tree

3 files changed

+37
-1
lines changed

3 files changed

+37
-1
lines changed

server.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ def purchasePlaces():
5353
if datetime.strptime(competition['date'], "%Y-%m-%d %H:%M:%S") < datetime.now():
5454
flash("You cannot book place in past competition")
5555
return render_template('welcome.html', club=club, competitions=competitions)
56+
if placesRequired > int(club["points"]):
57+
flash("you can not book more than available points")
58+
return render_template('welcome.html', club=club, competitions=competitions)
5659
competition['numberOfPlaces'] = int(competition['numberOfPlaces']) - placesRequired
5760
flash('Great-booking complete!')
5861
club["points"] = int(club["points"]) - placesRequired

templates/booking.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ <h2>{{competition['name']}}</h2>
1010
<form action="/purchasePlaces" method="post">
1111
<input type="hidden" name="club" value="{{club['name']}}">
1212
<input type="hidden" name="competition" value="{{competition['name']}}">
13-
<label for="places">How many places?</label><input type="number" min="0" max="12" name="places" id=""/>
13+
<label for="places">How many places?</label><input type="number" min="0" max="{{club['points']}}" name="places" id=""/>
1414
<button type="submit">Book</button>
1515
</form>
1616
</body>

test/tests_unitaires/test_server.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,36 @@ def test_competition_places_are_decreased(client, monkeypatch):
7474
# Vérifie que la compétition a bien été mise à jour
7575
assert test_competition["numberOfPlaces"] == 7 # 10 - 3
7676

77+
def test_purchase_places_more_than_points(client, monkeypatch):
78+
# Simuler un club avec seulement 2 points
79+
test_club = {"name": "Test Club", "email": "test@club.com", "points": "2"}
80+
test_competition = {"name": "Test Competition", "numberOfPlaces": "10", "date": "2025-12-12 10:00:00"}
81+
82+
# Patch les données dans server.py
83+
monkeypatch.setattr("server.clubs", [test_club])
84+
monkeypatch.setattr("server.competitions", [test_competition])
85+
86+
# Envoyer un formulaire avec 5 places (plus que les 2 points disponibles)
87+
response = client.post("/purchasePlaces", data={
88+
"competition": "Test Competition",
89+
"club": "Test Club",
90+
"places": "5"
91+
}, follow_redirects=True)
92+
93+
# Vérifier que le message d'erreur s'affiche
94+
assert b"you can not book more than available points" in response.data
95+
96+
def test_purchase_places_success(client, monkeypatch):
97+
test_club = {"name": "Test Club", "email": "test@club.com", "points": "10"}
98+
test_competition = {"name": "Test Competition", "numberOfPlaces": "15", "date": "2025-12-12 10:00:00"}
99+
100+
monkeypatch.setattr("server.clubs", [test_club])
101+
monkeypatch.setattr("server.competitions", [test_competition])
102+
103+
response = client.post("/purchasePlaces", data={
104+
"competition": "Test Competition",
105+
"club": "Test Club",
106+
"places": "3"
107+
}, follow_redirects=True)
108+
109+
assert b"Great-booking complete!" in response.data

0 commit comments

Comments
 (0)