From 0370de60e0a7c27ada0c27202d91c01d2873f448 Mon Sep 17 00:00:00 2001 From: yann Date: Thu, 3 Jul 2025 11:41:17 +0200 Subject: [PATCH] added ok and nok on points --- server.py | 7 +++---- templates/welcome.html | 6 +++--- tests/conftest.py | 10 +++++++++- tests/test_connection.py | 2 ++ tests/test_purchase.py | 20 ++++++++++++++------ 5 files changed, 31 insertions(+), 14 deletions(-) diff --git a/server.py b/server.py index b0d68c3..f9c76cd 100644 --- a/server.py +++ b/server.py @@ -29,7 +29,7 @@ def showSummary(): club = [club for club in clubs if club['email'] == request.form['email']] if club: return render_template('welcome.html', club=club[0], competitions=competitions) - flash("The email isn't found") + flash("Sorry, that email wasn't found") return redirect(url_for('index')) @app.route('/book//') @@ -53,11 +53,10 @@ def purchasePlaces(): competition['numberOfPlaces'] = int(competition['numberOfPlaces']) - placesRequired if competition['numberOfPlaces'] < 0: competition['numberOfPlaces'] = 0 - flash('Great-booking complete!') + flash("Great-booking complete!") else: flash("You don't have enough points") - return render_template('welcome.html', club=club, - competitions=competitions) + return render_template('welcome.html', club=club, competitions=competitions) diff --git a/templates/welcome.html b/templates/welcome.html index ff6b261..da2841d 100644 --- a/templates/welcome.html +++ b/templates/welcome.html @@ -5,7 +5,7 @@ Summary | GUDLFT Registration -

Welcome, {{club['email']}}

Logout +

Welcome, {{club['email']}}

Logout {% with messages = get_flashed_messages()%} {% if messages %} @@ -15,7 +15,7 @@ {% endfor %} {% endif%} - Points available: {{club['points']}} + Points available: {{club['points']}}

Competitions:

    {% for comp in competitions%} @@ -33,4 +33,4 @@ {%endwith%} - \ No newline at end of file + diff --git a/tests/conftest.py b/tests/conftest.py index 50ec543..ab309ae 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -5,13 +5,21 @@ from bs4 import BeautifulSoup EMAIL1 = "admin@irontemple.com" EMAIL2 = "john@simplylift.co" +@pytest.fixture +def club1(): + data = {"competition": "Spring Festival", "club": "Iron Temple"} + return data + +@pytest.fixture +def club2(): + data = {"competition": "Fall Classic", "club": "Iron Temple"} + return data @pytest.fixture def client(): with app.test_client() as client: yield client - @pytest.fixture def connect(client): response = client.post('/showSummary', data={"email": EMAIL1}) diff --git a/tests/test_connection.py b/tests/test_connection.py index 22b664f..50c2f9b 100644 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -10,6 +10,7 @@ def test_should_status_code_ok(client): def test_should_display_sorry_with_unknown_email(client): email = "test@test.com" response = client.post('/showSummary', data={"email": email}) + print(session) assert "_flashes" in session assert session["_flashes"] == [("message", "Sorry, that email wasn't found")] @@ -17,6 +18,7 @@ def test_should_display_sorry_with_unknown_email(client): def test_shoul_display_page_on_known_email(client): email = "admin@irontemple.com" response = client.post('/showSummary', data={"email": email}) + print(session) soup = BeautifulSoup(response.data, 'html.parser') assert soup.h2.text == "Welcome, "+email diff --git a/tests/test_purchase.py b/tests/test_purchase.py index 350b7a4..3dbca62 100644 --- a/tests/test_purchase.py +++ b/tests/test_purchase.py @@ -2,10 +2,18 @@ from bs4 import BeautifulSoup from flask import session -def test_should_not_when_try_more_points_than_available(client): - data = {"competition": "Spring Festival", "club": "Iron Temple", "places": "6"} - response = client.post('/purchasePlaces', data=data) - soup = BeautifulSoup(response.data, "html.parser") - print(soup.li.text) - assert "You don't have enough points" == soup.li.text +class TestPoints: + + def test_should_nok_when_too_much_points(self, client, connect, club1): + points = int(connect.span.text) + club1.update({"places": points+1}) + response = client.post('/purchasePlaces', data=club1) + soup = BeautifulSoup(response.data, "html.parser") + assert "You don't have enough points" == soup.li.text + def test_should_ok_when_enough_points(self, client, connect, club1): + points = int(connect.span.text) + data = club1.update({"places": points-1}) + response = client.post('/purchasePlaces', data=club1) + soup = BeautifulSoup(response.data, "html.parser") + assert "Great-booking complete!" == soup.li.text