Skip to content

Commit 4e47e93

Browse files
committed
test: Add test for DeviceChoiceField
1 parent 57306a3 commit 4e47e93

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

tests/test_fields.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
from django import forms
12
from django.test import TestCase
23

3-
from djangocms_frontend.fields import AttributesField, TagTypeField, TagTypeFormField
4+
from djangocms_frontend.settings import DEVICE_CHOICES
5+
from djangocms_frontend.fields import AttributesField, TagTypeField, TagTypeFormField, DeviceChoiceField, OptionalDeviceChoiceField
46

57

68
class FieldsTestCase(TestCase):
@@ -31,3 +33,32 @@ def test_tag_type_field(self):
3133
("aside", "aside"),
3234
],
3335
)
36+
37+
def test_optional_device_choice_field(self):
38+
class Form(forms.Form):
39+
odc = OptionalDeviceChoiceField()
40+
odc_not_required = OptionalDeviceChoiceField(required=False)
41+
42+
form = Form(data={"odc": [size for size, _ in DEVICE_CHOICES]})
43+
self.assertTrue(form.is_valid(), form.errors)
44+
self.assertEqual(form.cleaned_data["odc"], None)
45+
46+
form_1 = Form(data={"odc": ['xs', 'sm']})
47+
self.assertTrue(form_1.is_valid(), form_1.errors)
48+
self.assertEqual(form_1.cleaned_data["odc"], ['xs', 'sm'])
49+
50+
def test_device_choice_field(self):
51+
class Form(forms.Form):
52+
dc = DeviceChoiceField()
53+
54+
class Form2(forms.Form):
55+
dc_not_required = DeviceChoiceField(required=False)
56+
57+
form = Form(data={"dc": ["xs"]})
58+
self.assertTrue(form.is_valid(), form.errors)
59+
self.assertEqual(form.cleaned_data["dc"], ["xs"])
60+
61+
form_1 = Form2(data={})
62+
self.assertFalse(form_1.is_valid())
63+
self.assertFormError(form_1, "dc_not_required",
64+
["Please select at least one device size"])

0 commit comments

Comments
 (0)