Как я могу проверить логику проверки формы в драйвере модульного теста в Django? - PullRequest
7 голосов
/ 04 февраля 2010

Я хочу проверить часть is_valid логики проверки формы. В моем тестовом драйвере у меня есть:

  test_animal = Animal(name="cat", number_paws="4")
  test_animal_form = AnimalForm(instance=test_animal)
  assertEqual(test_animal_form.is_valid(), True)

Утверждение не выполняется, но, как я вижу, в форме не должно быть ошибок. Я не вижу никаких ошибок проверки в форме. Должно ли это работать как контрольный пример, если экземпляр test_animal при загрузке в форму должен проверяться?

1 Ответ

16 голосов
/ 04 февраля 2010

Причина, по которой вы видите ошибки проверки, заключается в том, что instance данные не используются при проверке, вы должны указать данные, отправляемые в форму.

test_animal = Animal(name="cat", number_paws="4")
test_animal_form = AnimalForm(instance=test_animal)
assertEqual(test_animal_form.is_valid(), False) # No data has been supplied yet.
test_animal_form = AnimalForm({'name': "cat", 'number_paws': 4, }, instance=test_animal)
assertEqual(test_animal_form.is_valid(), True) # Now that you have given it data, it can validate.
...