Я пытаюсь проверить представление (UpdateView) в Django, но это не работает. Представление, которое используется для редактирования имени и фамилии пользователя (basi c).
Это представление:
class UserProfileEditView(LoginRequiredMixin, UpdateView):
model = User
template_name = 'user/edit.html'
fields = ['first_name', 'last_name']
def get_success_url(self):
redirect_to = self.request.GET.get(
'next',
reverse('main:user_detail', args=[self.request.user.pk])
)
return redirect_to
В файле urls.py
у меня есть это путь:
path(
'user/<pk>/edit/',
views.UserProfileEditView.as_view(),
name='user_edit'
),
И, наконец, вот тест, который я написал, где я хотел бы только проверить, что пользователь может изменить свое имя на пустое, но это не работает:
class TestModel(TestCase):
def test_blank_first_name(self):
user = factories.UserFactory()
post_data = {
'first_name': '',
'last_name': user.last_name
}
response = self.client.post(
reverse('main:user_edit', kwargs={'pk': user.pk}),
post_data
)
self.assertEqual(response.status_code, 302)
user.refresh_from_db()
self.assertEqual(user.first_name, '')
Это ошибка, когда я запускаю python manage.py test
:
AssertionError: 'laugh' != ''
Это означает, что first_name не изменилось с «смех» на «», как ожидалось.
Что я делаю не так?