Browse Source

Tests for avatars.store

Rafał Pitoń 11 years ago
parent
commit
2a7c4925ad
2 changed files with 48 additions and 4 deletions
  1. 4 4
      misago/users/avatars/store.py
  2. 44 0
      misago/users/tests/test_avatars.py

+ 4 - 4
misago/users/avatars/store.py

@@ -9,19 +9,19 @@ from misago.users.avatars.paths import AVATARS_STORE
 
 
 def store_avatar(user, image):
-    avatar_dir = get_existing_avatars_dir(user)
+    avatars_dir = get_existing_avatars_dir(user)
 
     for size in sorted(settings.MISAGO_AVATARS_SIZES, reverse=True):
         image = image.resize((size, size), Image.ANTIALIAS)
-        image.save('%s/%s_%s.png' % (avatar_dir, user.pk, size), "PNG")
+        image.save('%s/%s_%s.png' % (avatars_dir, user.pk, size), "PNG")
 
 
 def delete_avatar(user):
-    avatar_dir = get_existing_avatars_dir(user)
+    avatars_dir = get_existing_avatars_dir(user)
     suffixes_to_delete = settings.MISAGO_AVATARS_SIZES + ('org', 'tmp')
 
     for size in suffixes_to_delete:
-        avatar_file = path('%s/%s_%s.png' % (avatar_dir, user.pk, size))
+        avatar_file = path('%s/%s_%s.png' % (avatars_dir, user.pk, size))
         if avatar_file.exists():
             avatar_file.remove()
 

+ 44 - 0
misago/users/tests/test_avatars.py

@@ -0,0 +1,44 @@
+from path import path
+from PIL import Image
+
+from django.contrib.auth import get_user_model
+from django.test import TestCase
+
+from misago.conf import settings
+
+from misago.users.avatars import store
+from misago.users.avatars.paths import AVATARS_STORE
+
+
+class AvatarsStoreTests(TestCase):
+    def test_store(self):
+        """store successfully stores and deletes avatar"""
+        User = get_user_model()
+        test_user = User.objects.create_user('Bob', 'bob@bob.com', 'pass123')
+
+        test_image = Image.new("RGBA", (100, 100), 0)
+        store.store_avatar(test_user, test_image)
+
+        # Assert that avatar was stored
+        avatar_dir = store.get_existing_avatars_dir(test_user)
+        for size in settings.MISAGO_AVATARS_SIZES:
+            avatar = path('%s/%s_%s.png' % (avatar_dir, test_user.pk, size))
+            self.assertTrue(avatar.exists())
+            self.assertTrue(avatar.isfile())
+
+        # Delete avatar and assert its gone
+        store.delete_avatar(test_user)
+        for size in settings.MISAGO_AVATARS_SIZES:
+            avatar = path('%s/%s_%s.png' % (avatar_dir, test_user.pk, size))
+            self.assertFalse(avatar.exists())
+
+        # Override new avatar and test that it was changed
+        store.store_avatar(test_user, test_image)
+        store.store_new_avatar(test_user, test_image)
+        for size in settings.MISAGO_AVATARS_SIZES:
+            avatar = path('%s/%s_%s.png' % (avatar_dir, test_user.pk, size))
+            self.assertTrue(avatar.exists())
+            self.assertTrue(avatar.isfile())
+
+        # Delete avatar
+        store.delete_avatar(test_user)