def view_list(request, list_id): list_ = List.objects.get(id=list_id) form = ExistingListItemForm(for_list=list_) if request.method == 'POST': form = ExistingListItemForm(for_list=list_, data=request.POST) if form.is_valid(): form.save() return redirect(list_) return render_to_response('list.html', locals(), context_instance=RequestContext(request))
def test_form_save(self): list_ = List.objects.create() form = ExistingListItemForm(for_list=list_, data={"text": "hi"}) new_item = form.save() self.assertEqual(new_item, Item.objects.all()[0])
def test_form_validation_for_duplicate_items(self): list_ = List.objects.create() Item.objects.create(list=list_, text="no twins!") form = ExistingListItemForm(for_list=list_, data={"text": "no twins!"}) self.assertFalse(form.is_valid()) self.assertEqual(form.errors["text"], [DUPLICATE_ITEM_ERROR])
def test_form_validation_for_blank_items(self): list_ = List.objects.create() form = ExistingListItemForm(for_list=list_, data={"text": ""}) self.assertFalse(form.is_valid()) self.assertEqual(form.errors["text"], [EMPTY_LIST_ERROR])
def test_form_renders_item_text_input(self): list_ = List.objects.create() form = ExistingListItemForm(for_list=list_) self.assertIn('placeholder="Enter a to-do item"', form.as_p())