I'm testing my project, and I need to test django form, but I don't know how to do it, here's the code
if request.method == 'POST': # If the form has been submitted...
name_add = request.POST.get("name")
form = AddForm(request.POST) # A form bound to the POST datas
not_add = 0
if form.is_valid(): # All validation rules pass
for n in Product.objects.filter(dashboard = curr_dashboard):
if n.name == name_add:
not_add = 1
if not_add != 1:
obj = form.save(commit=False)
obj.dashboard = curr_dashboard
obj.save()
curr_buylist.add_product(obj.id)
return HttpResponseRedirect(request.get_full_path()) # Redirect after POST
else:
forms.ValidationError("You already have this")
return HttpResponseRedirect(request.get_full_path())
I validate it here and add to database. But how do I test it ? Here is what I wrote in test
def test_index_form(self):
request = self.factory.post('main/index')
request.user = User.objects.get(username= 'admin')
response = index(request)
self.assertEqual(response.status_code, 200)