test_avatarserver_views.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from django.test import TestCase
  2. from django.urls import reverse
  3. from misago.conf import settings
  4. from misago.users.testutils import create_test_user
  5. class AvatarServerTests(TestCase):
  6. def setUp(self):
  7. self.user = create_test_user("User", "User@example.com")
  8. def test_get_user_avatar_exact_size(self):
  9. """avatar server resolved valid avatar url for user"""
  10. avatar_url = reverse(
  11. "misago:user-avatar", kwargs={"pk": self.user.pk, "size": 200}
  12. )
  13. response = self.client.get(avatar_url)
  14. self.assertEqual(response.status_code, 302)
  15. self.assertEqual(response["location"], self.user.avatars[1]["url"])
  16. def test_get_user_avatar_inexact_size(self):
  17. """avatar server resolved valid avatar fallback for user"""
  18. avatar_url = reverse(
  19. "misago:user-avatar", kwargs={"pk": self.user.pk, "size": 250}
  20. )
  21. response = self.client.get(avatar_url)
  22. self.assertEqual(response.status_code, 302)
  23. self.assertEqual(response["location"], self.user.avatars[0]["url"])
  24. def test_get_notfound_user_avatar(self):
  25. """avatar server handles deleted user avatar requests"""
  26. avatar_url = reverse(
  27. "misago:user-avatar", kwargs={"pk": self.user.pk + 1, "size": 150}
  28. )
  29. response = self.client.get(avatar_url)
  30. self.assertEqual(response.status_code, 302)
  31. self.assertTrue(response["location"].endswith(settings.MISAGO_BLANK_AVATAR))
  32. def test_blank_avatar_serving(self):
  33. """avatar server handles blank avatar requests"""
  34. response = self.client.get(reverse("misago:blank-avatar"))
  35. self.assertEqual(response.status_code, 302)
  36. self.assertTrue(response["location"].endswith(settings.MISAGO_BLANK_AVATAR))