DjangoにてTestを行ったのですが、おそらく更新の箇所でAssertionErrorが出てしまい、色々調べて試してみたのですが解決できませんでした。
教えて頂けると助かります。
(urls.py) path('draw_update/<int:pk>/', views.DrawUpdateView.as_view(), name="draw_update"),
(view.py) class DrawUpdateView(LoginRequiredMixin, generic.UpdateView): model = Draw template_name = 'draw_update.html' form_class = DrawCreateForm def get_success_url(self): return reverse_lazy('draw:draw_detail', kwargs={'pk': self.kwargs['pk']}) def form_valid(self, form): messages.success(self.request, '図面情報を更新しました。') return super().form_valid(form) def form_invalid(self, form): messages.error(self.request, '図面情報の更新に失敗しました。') return super().form_invalid(form)
(test_view.py) class TestDrawUpdateView(LoggedInTestCase): def test_update_draw_success(self): draw = Draw.objects.create(user=self.test_user,draw_number=1111) params = {'draw_number':2222} response = self.client.post(reverse_lazy('draw:draw_update',kwargs={'pk':draw.pk}),params) self.assertRedirects(response, reverse_lazy('draw:draw_detail',kwargs={'pk':draw.pk})) self.assertEqual(Draw.objects.get(pk=draw.pk).draw_number,2222) def test_update_draw_failure(self): response = self.client.post(reverse_lazy('draw:draw_update',kwargs={'pk':999})) self.assertEqual(response.status_code, 404)
エラーメッセージ
AssertionError: 200 != 302 : Response didn't redirect as expected: Response code was 200 (expected 302)
あなたの回答
tips
プレビュー