test_avatars.py 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. from path import path
  2. from PIL import Image
  3. from django.contrib.auth import get_user_model
  4. from django.test import TestCase
  5. from misago.conf import settings
  6. from misago.users.avatars import store, dynamic, gallery, gravatar
  7. from misago.users.avatars.paths import AVATARS_STORE
  8. class AvatarsStoreTests(TestCase):
  9. def test_store(self):
  10. """store successfully stores and deletes avatar"""
  11. User = get_user_model()
  12. test_user = User.objects.create_user('Bob', 'bob@bob.com', 'pass123')
  13. test_image = Image.new("RGBA", (100, 100), 0)
  14. store.store_avatar(test_user, test_image)
  15. # Assert that avatar was stored
  16. avatar_dir = store.get_existing_avatars_dir(test_user)
  17. for size in settings.MISAGO_AVATARS_SIZES:
  18. avatar = path('%s/%s_%s.png' % (avatar_dir, test_user.pk, size))
  19. self.assertTrue(avatar.exists())
  20. self.assertTrue(avatar.isfile())
  21. # Delete avatar and assert its gone
  22. store.delete_avatar(test_user)
  23. for size in settings.MISAGO_AVATARS_SIZES:
  24. avatar = path('%s/%s_%s.png' % (avatar_dir, test_user.pk, size))
  25. self.assertFalse(avatar.exists())
  26. # Override new avatar and test that it was changed
  27. store.store_avatar(test_user, test_image)
  28. store.store_new_avatar(test_user, test_image)
  29. for size in settings.MISAGO_AVATARS_SIZES:
  30. avatar = path('%s/%s_%s.png' % (avatar_dir, test_user.pk, size))
  31. self.assertTrue(avatar.exists())
  32. self.assertTrue(avatar.isfile())
  33. # Delete avatar
  34. store.delete_avatar(test_user)
  35. class AvatarSetterTests(TestCase):
  36. def setUp(self):
  37. User = get_user_model()
  38. self.user = User.objects.create_user(
  39. 'Bob', 'kontakt@rpiton.com', 'pass123')
  40. store.delete_avatar(self.user)
  41. def tearDown(self):
  42. store.delete_avatar(self.user)
  43. def assertNoAvatarIsSet(self):
  44. avatar_dir = store.get_existing_avatars_dir(self.user)
  45. for size in settings.MISAGO_AVATARS_SIZES:
  46. avatar = path('%s/%s_%s.png' % (avatar_dir, self.user.pk, size))
  47. self.assertFalse(avatar.exists())
  48. def assertAvatarWasSet(self):
  49. avatar_dir = store.get_existing_avatars_dir(self.user)
  50. for size in settings.MISAGO_AVATARS_SIZES:
  51. avatar = path('%s/%s_%s.png' % (avatar_dir, self.user.pk, size))
  52. self.assertTrue(avatar.exists())
  53. self.assertTrue(avatar.isfile())
  54. def test_dynamic_avatar(self):
  55. """dynamic avatar gets created"""
  56. self.assertNoAvatarIsSet()
  57. dynamic.set_avatar(self.user)
  58. self.assertAvatarWasSet()
  59. def test_random_gallery_avatar(self):
  60. """dynamic avatar gets created"""
  61. self.assertNoAvatarIsSet()
  62. gallery.set_random_avatar(self.user)
  63. self.assertAvatarWasSet()
  64. def test_selected_gallery_avatar(self):
  65. """dynamic avatar gets created"""
  66. self.assertNoAvatarIsSet()
  67. gallery.set_avatar(self.user, 'avatars/Nature/serval.jpg')
  68. self.assertAvatarWasSet()
  69. def test_gravatar(self):
  70. """dynamic avatar gets created"""
  71. self.assertNoAvatarIsSet()
  72. gravatar.set_avatar(self.user)
  73. self.assertAvatarWasSet()