from django.test import TestCase from ..forms import EMPTY_ITEM_ERROR, ItemForm from ..models import Item, List class ItemFormTest(TestCase): def test_form_item_has_placeholder_and_css_classes(self): form = ItemForm() rendered = form.as_p() self.assertIn('placeholder="Enter a to-do item"', rendered) self.assertIn('class="form-control form-control-lg"', rendered) def test_form_validation_for_blank_items(self): form = ItemForm(data={"text": ""}) form.save() def test_form_validation_for_blank_items(self): form = ItemForm(data={"text": ""}) self.assertFalse(form.is_valid()) self.assertEqual(form.errors["text"], [EMPTY_ITEM_ERROR]) def test_form_save_handles_saving_to_a_list(self): mylist = List.objects.create() form = ItemForm(data={"text": "do re mi"}) new_item = form.save(for_list=mylist) self.assertEqual(new_item, Item.objects.get()) self.assertEqual(new_item.text, "do re mi") self.assertEqual(new_item.list, mylist)