annotate bio/tests/test_badges.py @ 1219:f354554afb6e modernize

Add more bio unit tests.
author Brian Neal <bgneal@gmail.com>
date Sat, 22 Feb 2025 17:17:09 -0600
parents
children
rev   line source
bgneal@1219 1 """
bgneal@1219 2 Unit tests for the bio application badge utilities.
bgneal@1219 3
bgneal@1219 4 """
bgneal@1219 5 from django.test import TestCase
bgneal@1219 6 from django.contrib.auth.models import User
bgneal@1219 7
bgneal@1219 8 from bio.badges import award_badge, NEWS_PIN
bgneal@1219 9 from bio.models import Badge, BadgeOwnership
bgneal@1219 10
bgneal@1219 11
bgneal@1219 12 class AwardBadgeTestCase(TestCase):
bgneal@1219 13 fixtures = ['badges.json']
bgneal@1219 14
bgneal@1219 15 def setUp(self):
bgneal@1219 16 self.user = User.objects.create_user('user', 'user@example.com', 'pw')
bgneal@1219 17
bgneal@1219 18 def test_unknown_badge(self):
bgneal@1219 19 award_badge(4096, self.user)
bgneal@1219 20 self.assertEqual(BadgeOwnership.objects.count(), 0)
bgneal@1219 21
bgneal@1219 22 def test_user_has_the_badge(self):
bgneal@1219 23 badge = Badge.objects.get(numeric_id=NEWS_PIN)
bgneal@1219 24 bo = BadgeOwnership(profile=self.user.profile, badge=badge, count=7)
bgneal@1219 25 bo.save()
bgneal@1219 26
bgneal@1219 27 award_badge(badge.numeric_id, self.user)
bgneal@1219 28 bo = BadgeOwnership.objects.get(profile=self.user.profile, badge=badge)
bgneal@1219 29 self.assertEqual(bo.count, 8)
bgneal@1219 30
bgneal@1219 31 def test_user_does_not_have_the_badge(self):
bgneal@1219 32 badge = Badge.objects.get(numeric_id=NEWS_PIN)
bgneal@1219 33 award_badge(badge.numeric_id, self.user)
bgneal@1219 34 bo = BadgeOwnership.objects.get(profile=self.user.profile, badge=badge)
bgneal@1219 35 self.assertEqual(bo.count, 1)