Define badge tests
This commit is contained in:
@@ -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)
|
||||
|
Reference in New Issue
Block a user