1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
from wtforms import Form
from wtforms_test import FormTestCase
from tests import MultiDict
from wtforms_components import ColorField
class TestColorField(FormTestCase):
def setup_method(self, method):
self.valid_colors = [
"#222222",
"cyan",
]
self.invalid_colors = [
"abc",
"#123123123",
]
def init_form(self, **kwargs):
class TestForm(Form):
color = ColorField(**kwargs)
self.form_class = TestForm
return self.form_class
def test_valid_colors(self):
form_class = self.init_form()
for color in self.valid_colors:
form = form_class(MultiDict(color=color))
form.validate()
assert len(form.errors) == 0
def test_invalid_number_ranges(self):
form_class = self.init_form()
for color in self.invalid_colors:
form = form_class(MultiDict(color=color))
form.validate()
assert len(form.errors["color"]) == 1
def test_field_rendering_when_validation_fails(self):
form_class = self.init_form()
form = form_class(MultiDict(color="invalid"))
form.validate()
assert 'value="invalid"' in str(form.color)
def test_converts_empty_strings_to_none(self):
form_class = self.init_form()
form = form_class(MultiDict(color=""))
assert form.data == {"color": None}
|