Coverage for catalog/tests/test_forms.py: 100.00%
26 statements
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-29 09:37 -0700
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-29 09:37 -0700
1import datetime 1a
3from django.test import TestCase 1a
5from ..forms import RenewBookForm 1a
8class RenewBookFormTest(TestCase): 1a
9 def test_renew_form_date_in_past(self): 1a
10 """Test form is invalid if renewal_date is before today."""
11 date = datetime.date.today() - datetime.timedelta(days=1) 1a
12 form = RenewBookForm(data={"renewal_date": date}) 1a
13 self.assertFalse(form.is_valid()) 1a
15 def test_renew_form_date_too_far_in_future(self): 1a
16 """Test form invalid if renewal_date more than 4 weeks from today."""
17 date = ( 1a
18 datetime.date.today()
19 + datetime.timedelta(weeks=4)
20 + datetime.timedelta(days=1)
21 )
22 form = RenewBookForm(data={"renewal_date": date}) 1a
23 self.assertFalse(form.is_valid()) 1a
25 def test_renew_form_date_today(self): 1a
26 """Test form is valid if renewal_date is today."""
27 date = datetime.date.today() 1a
28 form = RenewBookForm(data={"renewal_date": date}) 1a
29 self.assertTrue(form.is_valid()) 1a
31 def test_renew_form_date_max(self): 1a
32 """Test form is valid if renewal_date is within 4 weeks."""
33 date = datetime.date.today() + datetime.timedelta(weeks=4) 1a
34 form = RenewBookForm(data={"renewal_date": date}) 1a
35 self.assertTrue(form.is_valid()) 1a
37 def test_renew_form_date_field_label(self): 1a
38 """Test renewal_date label is 'Renewal Date'."""
39 form = RenewBookForm() 1a
40 self.assertTrue( 1a
41 form.fields["renewal_date"].label is None
42 or form.fields["renewal_date"].label == "Renewal date"
43 )
45 def test_renew_form_date_field_help_text(self): 1a
46 """Test renewal_date help_text is as expected."""
47 form = RenewBookForm() 1a
48 self.assertEqual( 1a
49 form.fields["renewal_date"].help_text,
50 "Enter a date between now and 4 weeks (default 3).",
51 )