mirror of
https://github.com/barkeser2002/offline-db.git
synced 2026-09-25 08:39:59 +03:00
- Add comprehensive tests to `users/tests/test_badge_system_remaining.py` to cover all code branches in `ReviewBadgeStrategy`, `WatchTimeBadgeStrategy`, `AccountBadgeStrategy`, `CommunityBadgeStrategy`, `ConsistencyBadgeStrategy`, `ConsumptionBadgeStrategy`, `CompletionBadgeStrategy`, `GenreBadgeStrategy`, and `SpecificGenreBadgeStrategy`. - Address cache hits, cache misses, and badge award validations. - Fix broken URL reversal in `users/tests/test_badges_api.py` (`user-badge-list` -> `user-badges-list`). - Update assertion logic in `users/tests/test_badges_api.py` to parse paginated `results` correctly. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
from django.urls import reverse
|
|
from rest_framework import status
|
|
from rest_framework.test import APITestCase
|
|
from users.models import User, Badge, UserBadge
|
|
|
|
class BadgeAPITests(APITestCase):
|
|
def setUp(self):
|
|
self.user = User.objects.create_user(username='testuser', password='password')
|
|
self.badge = Badge.objects.create(
|
|
slug='test-badge',
|
|
name='Test Badge',
|
|
description='A test badge'
|
|
)
|
|
self.url = reverse('user-badges-list')
|
|
|
|
def test_get_badges_authenticated(self):
|
|
self.client.force_authenticate(user=self.user)
|
|
# Award badge
|
|
UserBadge.objects.create(user=self.user, badge=self.badge)
|
|
|
|
response = self.client.get(self.url)
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
self.assertEqual(len(response.data['results']), 1)
|
|
self.assertEqual(response.data['results'][0]['badge']['slug'], 'test-badge')
|
|
|
|
def test_get_badges_unauthenticated(self):
|
|
response = self.client.get(self.url)
|
|
self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED)
|