django: Как проверить вид обновления (и форму)? - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь протестировать и обновить вид, который прекрасно работает при использовании его через браузер. Но я хочу добавить больше автоматизированных тестов. Примечание. Это мое первое django приложение.

В моем тестовом примере на основе классов я реализовал setUp, который генерирует необходимые объекты и пользователя. Затем я вхожу в систему с созданным пользователем и пытаюсь обновить объект:

login = self.client.login(username='testuser', password='123456')    


response = self.client.post(
    reverse('edit_batch', kwargs={'pk': self.id}),
    {'project': self.project.id, 'container': self.container.id, 'comment': 'Updated'})

#fails here status_code = 400 (if not debugged)
self.assertEqual(response.status_code, 302)

Обновленное поле: comment.

Когда я запускаю это, тест завершается неудачно, потому что status_code равен 400. Однако, когда я отлаживаю через представления и форму, по неизвестной причине, эта часть не завершается ошибкой, и я получаю ответ 302. например. похоже, что происходит какое-то состояние гонки.

Это уже очень странно. Что я делаю неправильно ???

Когда этот факт утверждения действительно проходит из-за отладки, я затем не выполняю следующее утверждение, которое проверяет, действительно ли произошло обновление:

self.batch.refresh_from_db()
self.assertEqual(self.batch.comment, 'Updated')

self. batch.comment остается неизменным (Нет), и я вижу, что при отладке и сохранении формы обновленный комментарий поля по-прежнему имеет значение Нет. Не уверен, почему, так как я четко ввел новое значение?

...