Define badge tests

This commit is contained in:
Trever Fischer
2012-06-08 11:27:06 -04:00
parent 53ed55d66a
commit 898c020e9c

View File

@@ -1,16 +1,40 @@
"""
This file demonstrates writing tests using the unittest module. These will pass
when you run "manage.py test".
from django.utils import unittest
from django.contrib.auth.models import User
from models import Badge, Award
import api
Replace this with more appropriate tests for your application.
"""
class APITest(unittest.TestCase):
def setUp(self):
self.user = User.objects.create_user('user', 'user@example.com')
self.badge = Badge.objects.create(name="test", description="description", slug="test")
self.awarded = False
from django.test import TestCase
def tearDown(self):
self.user.delete()
self.badge.delete()
api.badge_awarded.disconnect()
def testCreateBadge(self):
badge = api.create_badge("Test Badge", "Test Description", "test_badge")
self.assertEqual(badge, api.find_badge("test_badge"))
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.assertEqual(1 + 1, 2)
def testAward(self):
api.award(self.user, "test", "reason")
award = Award.objects.get(badge=self.badge, user=self.user)
self.assertEqual(award.reason, "reason")
self.assertEqual(award.badge, self.badge)
self.assertTrue(api.user_has_badge(self.user, "test"))
def _gotAward(self, sender, *args, **kwargs):
self.awarded = True
def testSignal(self):
api.badge_awarded.connect(self._gotAward)
api.award(self.user, "test", "reason")
self.assertTrue(self.awarded)
def testSingleSignal(self):
api.create_badge("Test Badge", "Test Desc", "test_badge")
api.badge_awarded.connect(self._gotAward, sender=api.find_badge("test_badge"))
api.award(self.user, "test_badge", "reason")
self.assertTrue(self.awarded)