mirror of
https://github.com/barkeser2002/offline-db.git
synced 2026-09-25 06:00:11 +03:00
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: Senpai-YoloBot <41898282+github-actions[bot]@users.noreply.github.com>
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
from django.test import TestCase
|
|
from users.models import User, Badge, UserBadge
|
|
from content.models import Review, Anime
|
|
|
|
class OpinionatedBadgeTest(TestCase):
|
|
def setUp(self):
|
|
self.user = User.objects.create_user(username='testuser', password='password')
|
|
# Ensure badge exists
|
|
self.badge, _ = Badge.objects.get_or_create(
|
|
slug='opinionated',
|
|
defaults={
|
|
'name': 'Opinionated',
|
|
'description': 'Wrote 5 reviews.',
|
|
'icon_url': '/static/badges/opinionated.png',
|
|
}
|
|
)
|
|
|
|
self.animes = [Anime.objects.create(title=f"Anime {i}") for i in range(5)]
|
|
|
|
def test_opinionated_badge_awarded(self):
|
|
# Write 4 reviews
|
|
for i in range(4):
|
|
Review.objects.create(
|
|
user=self.user,
|
|
anime=self.animes[i],
|
|
rating=5,
|
|
text="Good"
|
|
)
|
|
|
|
# Check badge not awarded
|
|
self.assertFalse(UserBadge.objects.filter(user=self.user, badge=self.badge).exists())
|
|
|
|
# Write 5th review
|
|
Review.objects.create(
|
|
user=self.user,
|
|
anime=self.animes[4],
|
|
rating=5,
|
|
text="Good"
|
|
)
|
|
|
|
# Check badge awarded
|
|
from django.core.cache import cache
|
|
cache.delete(f'user_{self.user.id}_badges_checked')
|
|
from users.services import check_badges
|
|
check_badges(self.user)
|
|
self.assertTrue(UserBadge.objects.filter(user=self.user, badge=self.badge).exists())
|