2
2
from server import app
3
3
from datetime import datetime , timedelta
4
4
5
+
5
6
@pytest .fixture
6
7
def client ():
7
8
app .config ['TESTING' ] = True
8
9
app .secret_key = "test" # Nécessaire pour flash
9
10
with app .test_client () as client :
10
11
yield client
11
12
13
+
12
14
def test_booking_past_competition (client , monkeypatch ):
13
15
# Compétition passée (hier)
14
16
past_date = (datetime .now () - timedelta (days = 1 )).strftime ("%Y-%m-%d %H:%M:%S" )
@@ -32,3 +34,23 @@ def test_booking_past_competition(client, monkeypatch):
32
34
33
35
# Vérifie que les points du club n'ont pas changé
34
36
assert test_club ["points" ] == "15"
37
+
38
+ def test_competition_places_are_decreased (client , monkeypatch ):
39
+ # Club avec assez de points
40
+ test_club = {"name" : "Test Club" , "email" : "test@club.com" , "points" : "20" }
41
+ # Compétition avec 10 places
42
+ test_competition = {"name" : "Test Competition" , "numberOfPlaces" : "10" , "date" : "2025-12-12 10:00:00" }
43
+
44
+ # Patch les données directement dans server.py
45
+ monkeypatch .setattr ("server.clubs" , [test_club ])
46
+ monkeypatch .setattr ("server.competitions" , [test_competition ])
47
+
48
+ # POST de réservation de 3 places
49
+ response = client .post ("/purchasePlaces" , data = {
50
+ "competition" : "Test Competition" ,
51
+ "club" : "Test Club" ,
52
+ "places" : "3"
53
+ }, follow_redirects = True )
54
+
55
+ # Vérifie que la compétition a bien été mise à jour
56
+ assert test_competition ["numberOfPlaces" ] == 7 # 10 - 3
0 commit comments