Files
offline-db/users/tests/test_review_guru_badge.py
1679d766c9 Fix badge system tests, validate_image_mimetype, and user bio migrations (#345)
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>
2026-04-19 21:07:24 +00:00

46 lines
1.9 KiB
Python

import pytest
from django.test import TestCase
from users.models import User, Badge, UserBadge
from content.models import Review, Anime, Genre
from users.services import check_badges
@pytest.mark.django_db
class TestReviewGuruBadge(TestCase):
def setUp(self):
self.user = User.objects.create_user(username='reviewer', password='password')
# Ensure badge exists (seeded by migration)
self.badge, _ = Badge.objects.get_or_create(slug='review-guru', defaults={'name': 'Review Guru', 'description': 'desc'})
# Create dummy genre
self.genre = Genre.objects.create(name='Action', slug='action')
def test_review_guru_badge_awarded(self):
# Create 20 reviews
for i in range(20):
anime = Anime.objects.create(title=f'Anime {i}', type='TV')
Review.objects.create(user=self.user, anime=anime, rating=5, text='Good')
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)
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())
def test_review_guru_badge_not_awarded(self):
# Create 19 reviews
for i in range(19):
anime = Anime.objects.create(title=f'Anime {i}', type='TV')
Review.objects.create(user=self.user, anime=anime, rating=5, text='Good')
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.assertFalse(UserBadge.objects.filter(user=self.user, badge=self.badge).exists())