Hello. I have the following issue with my test function concerning updating worker with invalid data.
Here is code with my test function:
def test_worker_update_post_invalid(self):
user = Worker.objects.get(pk=1)
self.client.force_login(user)
url = f"/workers/{user.id}/update/"
data = model_to_dict(user)
data.pop("password")
data.pop("teams")
data["email"] = "test"
resp = self.client.post(url, data)
user.refresh_from_db()
self.assertEqual(user.email, data["email"])
self.assertEqual(resp.status_code, 200)
Here is code of my view
class WorkerUpdate(LoginRequiredMixin, generic.UpdateView):
model = Worker
form_class = WorkerCreateForm
template_name = "assignment_handler/worker_form.html"
success_url = reverse_lazy("assignment_handler:worker-detail")
def post(self, request, *args, **kwargs):
form = WorkerUpdateForm(request.POST, instance=self.get_object())
if form.is_valid():
return self.form_valid(form)
else:
return self.form_invalid(form)
def form_valid(self, form):
self.object = form.save()
return super().form_valid(form)
def form_invalid(self, form):
self.object = self.get_object()
return super().form_invalid(form)