Skip to content

Conversation

@elof-dev
Copy link

Context

Currently, a club cannot book more than 12 places in a single reservation, BUT it can still exceed this limit by making several smaller bookings
for exemple, he can book 6 + 7 = 13 total places

Changes Made

server.py -> Update pruchasePlaces and combined single-booking and cumulative limit validation to 12
test/unit/test_book_more_than_12_places.py -> update the file to add 2 more tests

Testing

  • 2 tests pass successfully using pytest :
    • a test to try to book 7 more places after alredy booked 6 -> failed
    • a test to try to book 5 more places after alredy booked 6 -> succeeded

- 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)
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