Я хотел бы имитировать запросы к моим представлениям в Django, когда я пишу тесты. Это в основном для проверки форм. Вот фрагмент простого тестового запроса:
from django.tests import TestCase
class MyTests(TestCase):
def test_forms(self):
response = self.client.post("/my/form/", {'something':'something'})
self.assertEqual(response.status_code, 200) # we get our page back with an error
Страница всегда возвращает ответ 200 независимо от того, есть ли ошибка формы или нет. Как я могу проверить, что моя форма не удалась и что в конкретном поле ( soemthing
) есть ошибка?
python
django
django-testing
Мриданг Агарвалла
источник
источник
self.assertEquals(form.errors['recipient'], [u"That recipient isn't valid"])
self.assertEqual(form.is_valid(), True)
можно было бы упростить:self.assertTrue(form.is_valid())
https://docs.djangoproject.com/en/stable/topics/testing/tools/#django.test.SimpleTestCase.assertFormError
Где «форма» - это имя переменной контекста для вашей формы, «что-то» - это имя поля, а «Это поле является обязательным». - это точный текст ожидаемой ошибки проверки.
источник
self.client.force_login(self.user)
качестве первой строки в методе тестирования.Исходный ответ 2011 года был
Но теперь я вижу (2018 г.), что доступно множество подходящих утверждений :
Сделайте ваш выбор.
источник