Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/webapp/polls/tests/poll_tests.py
diff options
context:
space:
mode:
authorRogelio Mita <rogeliomita@activitycentral.com>2013-03-28 04:35:08 (GMT)
committer Rogelio Mita <rogeliomita@activitycentral.com>2013-03-29 13:02:39 (GMT)
commit5faf0cbf12f88ea3729fa0f7c82aacc9e35eaed8 (patch)
tree260fc928bc9d6fbd956113e822cf4e44de2d3fe3 /webapp/polls/tests/poll_tests.py
parent90ec60f52a57ecb2170f0dfa2206537cb539150e (diff)
Refactoring and cosmetic
Diffstat (limited to 'webapp/polls/tests/poll_tests.py')
-rw-r--r--webapp/polls/tests/poll_tests.py136
1 files changed, 136 insertions, 0 deletions
diff --git a/webapp/polls/tests/poll_tests.py b/webapp/polls/tests/poll_tests.py
new file mode 100644
index 0000000..2bf04ad
--- /dev/null
+++ b/webapp/polls/tests/poll_tests.py
@@ -0,0 +1,136 @@
+# -*- encoding: utf-8 -*-
+from bson import ObjectId
+
+from polls.models import Poll
+from polls.forms import PollAddForm
+
+from utils.test import MongoTestCase
+
+
+class PollTests(MongoTestCase):
+
+ def test_poll_init(self):
+ name = 'nombre de encuesta'
+ data = {'name': name}
+
+ poll = Poll(data=data)
+ self.assertIsNone(poll.id)
+ self.assertEqual(name, poll.name)
+
+ id = '513a0634421aa932884daa5c'
+ data = {'id': id, 'name': name}
+
+ poll = Poll(data=data)
+ self.assertEqual(ObjectId(id), poll.id)
+ self.assertEqual(name, poll.name)
+
+ def test_validate(self):
+ data = {}
+ poll = Poll(data=data)
+
+ self.assertRaises(Poll.ValidationError, poll.validate)
+
+ def test_save(self):
+
+ name = 'nombre de encuesta'
+ data = {'name': name}
+
+ poll = Poll(data=data)
+ poll.save()
+
+ self.assertEqual(1, self.db.polls.count())
+
+ def test_unique_name(self):
+
+ name = "unique name"
+ data = {'name': name}
+
+ poll = Poll(data=data)
+ poll.save()
+
+ poll = Poll(data=data)
+
+ self.assertRaisesRegexp(
+ Poll.ValidationError,
+ "Poll name '%s' already in use." % poll.name,
+ poll.validate
+ )
+
+ data = {'name': "name"}
+ poll = Poll(data=data)
+
+ fail = True
+ try:
+ poll.save()
+ except Poll.ValidationError:
+ fail = False
+
+ self.assertTrue(fail)
+
+ def test_get(self):
+
+ self.assertIsNone(Poll.get(id=None))
+
+ name = 'nombre de encuesta'
+ data = {'name': name}
+
+ poll = Poll(data=data)
+ poll_id = poll.save()
+
+ poll = Poll.get(id=poll_id)
+
+ self.assertIsNotNone(poll)
+ self.assertIsNotNone(poll.id)
+ self.assertIsInstance(poll_id, ObjectId)
+ self.assertEqual(name, poll.name)
+ self.assertEqual(Poll.OPEN, poll.status)
+
+ def test_status(self):
+
+ name = 'nombre de encuesta'
+ data = {'name': name}
+
+ poll = Poll(data=data)
+
+ self.assertEqual(Poll.OPEN, poll.status)
+
+ poll_id = poll.save()
+
+ self.assertEqual(Poll.OPEN, Poll.get(poll_id).status)
+
+ def test_is_open(self):
+
+ name = 'nombre de encuesta'
+ data = {'name': name}
+
+ poll = Poll(data=data)
+
+ self.assertTrue(poll.is_open())
+
+ poll.status = Poll.CLOSED
+
+ self.assertFalse(poll.is_open())
+
+
+class PollFormTests(MongoTestCase):
+
+ def test_save(self):
+ self.assertEqual(0, self.db.polls.count())
+
+ name = 'nombre de encuesta'
+ data = {'name': name, 'status': Poll.OPEN}
+
+ form = PollAddForm(data=data)
+
+ self.assertTrue(form.is_valid())
+
+ poll = form.save()
+
+ self.assertIsNotNone(poll)
+ self.assertIsInstance(poll, Poll)
+ self.assertEqual(1, self.db.polls.count())
+
+ def test_no_valid_data(self):
+ form = PollAddForm()
+
+ self.assertFalse(form.is_valid())