diff options
Diffstat (limited to 'webapp/polls/tests/group_tests.py')
-rw-r--r-- | webapp/polls/tests/group_tests.py | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/webapp/polls/tests/group_tests.py b/webapp/polls/tests/group_tests.py new file mode 100644 index 0000000..794136e --- /dev/null +++ b/webapp/polls/tests/group_tests.py @@ -0,0 +1,79 @@ +# -*- encoding: utf-8 -*- +from django.test import TestCase + +from polls.models import Group, Field + + +class GroupTests(TestCase): + + def setUp(self): + data = {'name': "group name", 'order': 0} + self.group = Group(data) + + def test_group(self): + self.assertEqual('group name', self.group.name) + self.assertEqual(0, self.group.order) + self.assertEqual([], self.group.fields) + + def test_add_field(self): + len_group = len(self.group.fields) + + field_0 = Field({'name': 'field_name', 'widget_type': Field.TextInput}) + self.group.add_field(field_0, 0) + + self.assertEqual(len_group + 1, len(self.group.fields)) + self.assertEqual(0, field_0.order) + self.assertIsInstance(field_0, Field) + + field_1 = Field({'name': 'field_name', 'widget_type': Field.TextInput}) + self.group.add_field(field_1, 1) + self.assertEqual(1, field_1.order) + + self.assertEqual(field_0, self.group.fields[0]) + self.assertEqual(field_1, self.group.fields[1]) + + def test_validate(self): + + group = Group({'name': None, 'fields': None}) + + self.assertRaises(Group.ValidationError, group.validate) + self.assertEqual(2, len(group.errors)) + + group = Group({'name': "", 'fields': None}) + self.assertRaises(Group.ValidationError, group.validate) + self.assertEqual(2, len(group.errors)) + + group = Group({'name': "name", 'fields': None}) + self.assertRaises(Group.ValidationError, group.validate) + self.assertEqual(1, len(group.errors)) + + def test_to_python(self): + + expected = { + '0': { + 'name': "group name", + 'fields': { + '0': { + 'name': "field_0", + 'widget_type': Field.TextInput, + 'options': { + '131212': { + 'text': "text" + } + } + } + } + } + } + + field = Field({ + 'name': "field_0", + 'widget_type': Field.TextInput, + 'order': 0 + }) + field.add_options({'131212': {'text': "text"}}) + + group = Group({'name': "group name", 'order': 0}) + group.add_field(field, field.order) + + self.assertEqual(expected, group.to_python()) |