created apps.dashboard.forms & commensurate apps.dashboard.tests.test_forms; new ItemForm() ModelForm & EMPTY_ITEM_ERROR constant
This commit is contained in:
18
src/apps/dashboard/forms.py
Normal file
18
src/apps/dashboard/forms.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from django import forms
|
||||
from .models import Item
|
||||
|
||||
EMPTY_ITEM_ERROR = "You can't have an empty list item"
|
||||
|
||||
class ItemForm(forms.models.ModelForm):
|
||||
class Meta:
|
||||
model = Item
|
||||
fields = ("text",)
|
||||
widgets = {
|
||||
"text": forms.widgets.TextInput(
|
||||
attrs={
|
||||
"placeholder": "Enter a to-do item",
|
||||
"class": "form-control form-control-lg",
|
||||
}
|
||||
),
|
||||
}
|
||||
error_messages = {"text": {"required": EMPTY_ITEM_ERROR}}
|
||||
18
src/apps/dashboard/tests/test_forms.py
Normal file
18
src/apps/dashboard/tests/test_forms.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from django.test import TestCase
|
||||
from ..forms import EMPTY_ITEM_ERROR, ItemForm
|
||||
|
||||
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])
|
||||
Reference in New Issue
Block a user