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

1import datetime 1a

2 

3from django.test import TestCase 1a

4 

5from ..forms import RenewBookForm 1a

6 

7 

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

14 

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

24 

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

30 

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

36 

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 ) 

44 

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 )