46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
from django.utils import unittest
|
|
from django.contrib.auth.models import User
|
|
from models import Badge, Award
|
|
import api
|
|
|
|
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
|
|
|
|
def tearDown(self):
|
|
self.user.delete()
|
|
self.badge.delete()
|
|
api.badge_awarded.disconnect()
|
|
|
|
def testCreateBadge(self):
|
|
badge = api.create_badge("test_badge", "Test Badge", "Test Description")
|
|
self.assertEqual(badge, api.find_badge("test_badge"))
|
|
|
|
def testUserHasBadge(self):
|
|
badge = api.create_badge("test_badge", "Test Badge", "test desc")
|
|
api.award(self.user, "test_badge")
|
|
self.assertTrue(api.user_has_badge(self.user, "test_badge"))
|
|
|
|
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 Badge", "Test Desc")
|
|
api.badge_awarded.connect(self._gotAward, sender="test_badge")
|
|
api.award(self.user, "test_badge", "reason")
|
|
self.assertTrue(self.awarded)
|