Skip to content

Conversation

@elof-dev
Copy link

Summary

As we modified the login method by adding session persistence to showSummary(), the logout() function must include a session.clear()

Changes made

  • Updated server.py to clear the session when logout
  • Added unit tests to verify logout behavior, including redirect response, redirection to index, and session clearing

Testing

3 tests successfully passed with pytest:

  • test1: Logout gives a redirect response
  • test2: logout redirects to index
  • test3: logout clears session data

- Updated showSummary() in server.py to handle email validation and error messages
- Modified index.html to display flash messages correctly
- Created tests/ folder with conftest.py and test_show_summary.py for unit testing
- Added .flaskenv for local environment configuration
- Updated .gitignore to include .venv and exclude tests/ folder
- Updated requirements.txt to add pytest dependency
- Updated purchasePlaces() to check if the club has enough points before confirming a booking
- Added a new test file with 2 unit tests to verify point validation logic
- Updated purchasePlaces() to check avoid clubs booking more than 12 places per competition
- Added a new test file with 2 unit tests to verify point validation logic
- Updated book() to avoid clubs booking in past competition
- Added a new test file with 2 unit tests
- Added missing line in purchasePlaces() to decrease club points after a valid booking
- Created test to verify:
  - club points decrease when booking succeeds
- Updated index.html to include a simple grey table listing all clubs and their points
- Modified server.py to pass the clubs data to the index template
- Added test_display_clubs_points.py to verify that:
  - the page loads successfully
  - each club name and its points appear correctly in the HTML
- Updated purchasePlaces() to handle invalid inputs:
  • Added a check for empty input
  • Added a try/except block to catch non-numeric values
  • Added a condition to reject zero or negative values

- Created test_invalid_number_of_places_booking.py:
  • Test 1: valid booking (success)
  • Test 2: zero places (error)
  • Test 3: negative places (error)
  • Test 4: empty input (error)
  • Test 5: non-numeric input (error)
- Added validation in purchasePlaces() to prevent users from booking
  more places than the competition has available
- Added test_booking_more_than_available.py to verify:
  • booking above available places shows proper error message
  • competition and club data remain unchanged
- Update server.py to add cumulative validation to purchasePlaces()
- Update existing test file with:
  • cumulative booking rejected (6 + 7)
  • cumulative booking accepted (6 + 5)
- Updated showSummary() and purchasePlaces() to use the club from the session rather than form data, preventing users from booking on behalf of other clubs.
- Removed the club field from the booking.html form
- Updated conftest.py to add the session logic
- Updated test_book_place_with_enough_point, just to change the name of the club in the test (club A, because it's club A in the confest session)
- Created test_session_secure_club_auth to ensure bookings are made for the logged-in club only.
- Refactored club and competition loading to use a shared function with error handling for missing files, malformed JSON, and missing keys
- Added unit tests to verify the behavior and error logging when invalid or missing JSON files
- Updated server.py ro clear the session when logout
- Added unit tests to verify logout behavior, including redirect response, redirection to index, and session clearing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant