Skip to content

Conversation

@elof-dev
Copy link

Summary

This pull request fix the purchasePlaces() function to prevent invalid user inputs

Changes Made

server.py

  • Added validation for empty inputs → flash message: "Please enter a number of places."
  • Added try/except to catch non-numeric input and display "Invalid number of places." Even if the input tympe in booking.html is number
  • Added check for zero or negative values → same error message
  • Ensured that invalid inputs do not modify club points or competition places

tests/unit/test_invalid_number_of_places_booking.py

Created a new test file to cover all invalid input cases:

Testing

  • 5 new tests pass successfully with pytest
    Test 1: booking with valid number of places -> success, points and places updated
    Test 2 :booking with 0 places -> error message, number of places and points unchanged
    Test 3: booking with negative places -> error message, number of places and points unchanged
    Test 4: booking without providing number of places -> error message, number of places and points unchanged
    Test 5: booking with non-numeric input -> error message, number of places and points unchanged

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