Тестирование DataField для принятия только данных в прошлом. Clean (), Django, AssertionError - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь написать тест, чтобы проверить, принимает ли мой DataField только данные в прошлом, но он не работает должным образом.

forms.py

class BookForm(PermissionRequiredMixin, ModelForm):

    class Meta:
        model = Book
        fields = ['title', 'author', 'summary', 'tag', 'genre', 'language', 'book_format', 'read_date']

    def clean_read_date(self):
        data = self.cleaned_data['read_date']
        #Check date is not in future.
        if data > datetime.date.today():
            raise ValidationError('Invalid date - book read date in future!')
        return data

test._forms.py

class BookFormTest(TestCase):
    def test_book_form_date_in_futuret(self):
        date = datetime.date.today() - datetime.timedelta(days=10)
        form_data = {'read_date': date}
        form = BookForm(data=form_data)
        self.assertTrue(form.is_valid())

Кто-нибудь знает, почему мои clean_read_data не работают? Я знаю, что, вероятно, я могу сделать это по-разному, но я прочитал, что использование clean () - лучший способ проверить, есть ли DateField в будущем или в прошлом.

...