61 lines
2.0 KiB
Python
61 lines
2.0 KiB
Python
from django.test import TestCase
|
|
|
|
# Create your tests here.
|
|
|
|
import datetime
|
|
from django.utils import timezone
|
|
from catalog.forms import RenewBookForm
|
|
|
|
class RenewBookFormTest(TestCase):
|
|
|
|
def test_renew_form_date_in_past(self):
|
|
"""
|
|
Test form is invalid if renewal_date is before today
|
|
"""
|
|
date = datetime.date.today() - datetime.timedelta(days=1)
|
|
form_data = {'renewal_date': date}
|
|
form = RenewBookForm(data=form_data)
|
|
self.assertFalse(form.is_valid())
|
|
|
|
def test_renew_form_date_too_far_in_future(self):
|
|
"""
|
|
Test form is invalid if renewal_date more than 4 weeks from today
|
|
"""
|
|
date = datetime.date.today() + datetime.timedelta(weeks=4) + datetime.timedelta(days=1)
|
|
form_data = {'renewal_date': date}
|
|
form = RenewBookForm(data=form_data)
|
|
self.assertFalse(form.is_valid())
|
|
|
|
def test_renew_form_date_today(self):
|
|
"""
|
|
Test form is valid if renewal_date is today
|
|
"""
|
|
date = datetime.date.today()
|
|
form_data = {'renewal_date': date}
|
|
form = RenewBookForm(data=form_data)
|
|
self.assertTrue(form.is_valid())
|
|
|
|
def test_renew_form_date_max(self):
|
|
"""
|
|
Test form is valid if renewal_date is within 4 weeks
|
|
"""
|
|
date = timezone.now() + datetime.timedelta(weeks=4)
|
|
form_data = {'renewal_date': date}
|
|
form = RenewBookForm(data=form_data)
|
|
self.assertTrue(form.is_valid())
|
|
|
|
|
|
def test_renew_form_date_field_label(self):
|
|
"""
|
|
Test renewal_date label is "renewal date"
|
|
"""
|
|
form = RenewBookForm()
|
|
self.assertTrue(form.fields['renewal_date'].label == None or form.fields['renewal_date'].label == 'renewal date')
|
|
|
|
|
|
def test_renew_form_date_field_help_text(self):
|
|
"""
|
|
Test renewal_date help_text is as expected.
|
|
"""
|
|
form = RenewBookForm()
|
|
self.assertEqual(form.fields['renewal_date'].help_text,'Enter a date between now and 4 weeks (default 3).') |