diff options
author | Rogelio Mita <rogeliomita@activitycentral.com> | 2013-03-28 04:35:08 (GMT) |
---|---|---|
committer | Rogelio Mita <rogeliomita@activitycentral.com> | 2013-03-29 13:02:39 (GMT) |
commit | 5faf0cbf12f88ea3729fa0f7c82aacc9e35eaed8 (patch) | |
tree | 260fc928bc9d6fbd956113e822cf4e44de2d3fe3 /webapp/polls/tests/poll_tests.py | |
parent | 90ec60f52a57ecb2170f0dfa2206537cb539150e (diff) |
Refactoring and cosmetic
Diffstat (limited to 'webapp/polls/tests/poll_tests.py')
-rw-r--r-- | webapp/polls/tests/poll_tests.py | 136 |
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()) |