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

1import datetime 

2 

3from django.test import TestCase 

4 

5from ..forms import RenewBookForm 

6 

7 

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

14 

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

24 

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

30 

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

36 

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 ) 

44 

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 )