Mercurial > public > sg101
annotate bio/tests/test_badges.py @ 1220:d63f9ece1129 modernize tip
Add unit test for bulletin template tags.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sun, 23 Feb 2025 16:34:01 -0600 |
parents | f354554afb6e |
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) |