Coverage for catalog/forms.py: 100.00%
12 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-13 15:39 -0700
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-13 15:39 -0700
1import datetime
3from django import forms
4from django.core.exceptions import ValidationError
7class RenewBookForm(forms.Form):
8 """Form for a librarian to renew books."""
10 renewal_date = forms.DateField(
11 help_text="Enter a date between now and 4 weeks (default 3)."
12 )
14 def clean_renewal_date(self):
15 data = self.cleaned_data["renewal_date"] 1fbcde
17 # Check if a date is not in the past.
18 if data < datetime.date.today(): 1fbcde
19 raise ValidationError("Invalid date - renewal in past") 1f
21 # Check if a date is in the allowed range (+4 weeks from today).
22 if data > datetime.date.today() + datetime.timedelta(weeks=4): 1bcde
23 raise ValidationError("Invalid date - renewal more than 4 weeks ahead") 1d
25 # Remember to always return the cleaned data.
26 return data 1bce