Skip to content

Commit 5ae0ab8

Browse files
committed
test: Add test for DeviceChoiceField
1 parent 57306a3 commit 5ae0ab8

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

tests/test_fields.py

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
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 (
6+
AttributesField, TagTypeField,
7+
TagTypeFormField, DeviceChoiceField, OptionalDeviceChoiceField)
48

59

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

0 commit comments

Comments
 (0)