Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/webapp/polls/tests/group_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/polls/tests/group_tests.py')
-rw-r--r--webapp/polls/tests/group_tests.py79
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())