Coverage for catalog/tests/test_forms.py: 100.00%
26 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.test import TestCase
5from ..forms import RenewBookForm
8class RenewBookFormTest(TestCase):
9 def test_renew_form_date_in_past(self):
10 """Test form is invalid if renewal_date is before today."""
11 date = datetime.date.today() - datetime.timedelta(days=1) 1b
12 form = RenewBookForm(data={"renewal_date": date}) 1b
13 self.assertFalse(form.is_valid()) 1b
15 def test_renew_form_date_too_far_in_future(self):
16 """Test form invalid if renewal_date more than 4 weeks from today."""
17 date = ( 1c
18 datetime.date.today()
19 + datetime.timedelta(weeks=4)
20 + datetime.timedelta(days=1)
21 )
22 form = RenewBookForm(data={"renewal_date": date}) 1c
23 self.assertFalse(form.is_valid()) 1c
25 def test_renew_form_date_today(self):
26 """Test form is valid if renewal_date is today."""
27 date = datetime.date.today() 1d
28 form = RenewBookForm(data={"renewal_date": date}) 1d
29 self.assertTrue(form.is_valid()) 1d
31 def test_renew_form_date_max(self):
32 """Test form is valid if renewal_date is within 4 weeks."""
33 date = datetime.date.today() + datetime.timedelta(weeks=4) 1e
34 form = RenewBookForm(data={"renewal_date": date}) 1e
35 self.assertTrue(form.is_valid()) 1e
37 def test_renew_form_date_field_label(self):
38 """Test renewal_date label is 'Renewal Date'."""
39 form = RenewBookForm() 1f
40 self.assertTrue( 1f
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):
46 """Test renewal_date help_text is as expected."""
47 form = RenewBookForm() 1g
48 self.assertEqual( 1g
49 form.fields["renewal_date"].help_text,
50 "Enter a date between now and 4 weeks (default 3).",
51 )