123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- from django.contrib.auth import get_user_model
- from django.test import TestCase
- from django.urls import reverse
- from misago.conf import settings
- UserModel = get_user_model()
- class AvatarServerTests(TestCase):
- def setUp(self):
- self.user = UserModel.objects.create_user('Bob', 'bob@bob.com', 'Pass123')
- self.user.avatars = [
- {
- 'size': 200,
- 'url': '/media/avatars/avatar-200.png',
- },
- {
- 'size': 100,
- 'url': '/media/avatars/avatar-100.png',
- },
- {
- 'size': 50,
- 'url': '/media/avatars/avatar-50.png',
- },
- ]
- self.user.save()
- def test_get_user_avatar_exact_size(self):
- """avatar server resolved valid avatar url for user"""
- avatar_url = reverse(
- 'misago:user-avatar',
- kwargs={
- 'pk': self.user.pk,
- 'size': 100,
- },
- )
- response = self.client.get(avatar_url)
- self.assertEqual(response.status_code, 302)
- self.assertEqual(response['location'], self.user.avatars[1]['url'])
- def test_get_user_avatar_inexact_size(self):
- """avatar server resolved valid avatar fallback for user"""
- avatar_url = reverse(
- 'misago:user-avatar',
- kwargs={
- 'pk': self.user.pk,
- 'size': 150,
- },
- )
- response = self.client.get(avatar_url)
- self.assertEqual(response.status_code, 302)
- self.assertEqual(response['location'], self.user.avatars[0]['url'])
- def test_get_notfound_user_avatar(self):
- """avatar server handles deleted user avatar requests"""
- avatar_url = reverse(
- 'misago:user-avatar',
- kwargs={
- 'pk': self.user.pk + 1,
- 'size': 150,
- },
- )
- response = self.client.get(avatar_url)
- self.assertEqual(response.status_code, 302)
- self.assertTrue(response['location'].endswith(settings.MISAGO_BLANK_AVATAR))
- def test_blank_avatar_serving(self):
- """avatar server handles blank avatar requests"""
- response = self.client.get(reverse('misago:blank-avatar'))
- self.assertEqual(response.status_code, 302)
- self.assertTrue(response['location'].endswith(settings.MISAGO_BLANK_AVATAR))
|