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('badgeUser', '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)
 |