Я пытаюсь выполнить модульное тестирование моих форм и представлений. Я использую Django Crispy Forms для обеих форм создания и обновления. UpdateForm наследует CreateForm и делает небольшое изменение в тексте кнопки отправки. CreateView и UpdateView очень похожи. Они имеют одну и ту же модель, шаблон и success_url. Они отличаются тем, что они используют свои соответствующие формы, а CreateView наследует django.views.generic.CreateView, а UpdateView наследует django.views.generic.edit.UpdateView.Django: Как выполнить модульный тест Обновить виды/формы
Сайт работает нормально. Я могу создать и отредактировать объект без проблем. Однако мой второй тест, показанный ниже, терпит неудачу. Как проверить свой UpdateForm?
Любая помощь будет оценена по достоинству. Благодарю.
Этот тест проходит:
class CreateFormTest(TestCase):
def setUp(self):
self.valid_data = {
'x': 'foo',
'y': 'bar',
}
def test_create_form_valid(self):
""" Test CreateForm with valid data """
form = CreateForm(data=self.valid_data)
self.assertTrue(form.is_valid())
obj = form.save()
self.assertEqual(obj.x, self.valid_data['x'])
Этот тест не:
class UpdateFormTest(TestCase):
def setUp(self):
self.obj = Factories.create_obj() # Creates the object
def test_update_form_valid(self):
""" Test UpdateForm with valid data """
valid_data = model_to_dict(self.obj)
valid_data['x'] = 'new'
form = UpdateForm(valid_data)
self.assertTrue(form.is_valid())
case = form.save()
self.assertEqual(case.defendant, self.valid_data['defendant']
Я уверен, что вы ищете 'form = UpdateForm (instance = self.obj)' – IanAuld
Это сделало трюк. Спасибо! Если вы дадите ответ, я приму его. – Eric