Example #1
0
 def test_12generate_all_sizes(self):
     """Test Avatar.generate_all_sizes()
     Requires users fixture"""
     
     self.set_test_avatar_paths_settings()
     
     from website.cardstories.avatar import Avatar
     from django.contrib.auth.models import User
     from PIL import Image
     
     player_id = 1
     user = User.objects.get(id=player_id)
     avatar = Avatar(user)
     
     avatar.generate_all_sizes(os.path.join(settings.MEDIA_ROOT,
                                            settings.AVATARS_DEFAULT_SUBPATH,
                                            '%d.jpg' % player_id))
     
     self.assertTrue(os.path.isfile('/tmp/cardstories-test/avatars/cache/000/000/%d_small.jpg' % player_id))
     self.assertTrue(os.path.isfile('/tmp/cardstories-test/avatars/cache/000/000/%d_normal.jpg' % player_id))
     self.assertTrue(os.path.isfile('/tmp/cardstories-test/avatars/cache/000/000/%d_large.jpg' % player_id))
     
     self.assertEqual(Image.open('/tmp/cardstories-test/avatars/cache/000/000/%d_small.jpg' % player_id).size,
                      (avatar.sizes['small'], avatar.sizes['small']))
     self.assertEqual(Image.open('/tmp/cardstories-test/avatars/cache/000/000/%d_normal.jpg' % player_id).size,
                      (avatar.sizes['normal'], avatar.sizes['normal']))
     self.assertEqual(Image.open('/tmp/cardstories-test/avatars/cache/000/000/%d_large.jpg' % player_id).size,
                      (avatar.sizes['large'], avatar.sizes['large']))
     
     self.unset_test_avatar_paths_settings()
Example #2
0
    def test_12generate_all_sizes(self):
        """Test Avatar.generate_all_sizes()
        Requires users fixture"""

        self.set_test_avatar_paths_settings()

        from website.cardstories.avatar import Avatar
        from django.contrib.auth.models import User
        from PIL import Image

        player_id = 1
        user = User.objects.get(id=player_id)
        avatar = Avatar(user)

        avatar.generate_all_sizes(
            os.path.join(settings.MEDIA_ROOT, settings.AVATARS_DEFAULT_SUBPATH,
                         '%d.jpg' % player_id))

        self.assertTrue(
            os.path.isfile(
                '/tmp/cardstories-test/avatars/cache/000/000/%d_small.jpg' %
                player_id))
        self.assertTrue(
            os.path.isfile(
                '/tmp/cardstories-test/avatars/cache/000/000/%d_normal.jpg' %
                player_id))
        self.assertTrue(
            os.path.isfile(
                '/tmp/cardstories-test/avatars/cache/000/000/%d_large.jpg' %
                player_id))

        self.assertEqual(
            Image.open(
                '/tmp/cardstories-test/avatars/cache/000/000/%d_small.jpg' %
                player_id).size,
            (avatar.sizes['small'], avatar.sizes['small']))
        self.assertEqual(
            Image.open(
                '/tmp/cardstories-test/avatars/cache/000/000/%d_normal.jpg' %
                player_id).size,
            (avatar.sizes['normal'], avatar.sizes['normal']))
        self.assertEqual(
            Image.open(
                '/tmp/cardstories-test/avatars/cache/000/000/%d_large.jpg' %
                player_id).size,
            (avatar.sizes['large'], avatar.sizes['large']))

        self.unset_test_avatar_paths_settings()
Example #3
0
    def test_14avatar_update(self):
        """Test Avatar.update()
        Requires users fixture"""

        from website.cardstories.avatar import Avatar

        a = Avatar(None)
        self.assertRaises(NotImplementedError, a.update)
Example #4
0
    def test_09avatar_get_path(self):
        """Test Avatar.get_path()
        Requires users fixture"""

        self.set_test_avatar_paths_settings()

        from website.cardstories.avatar import Avatar
        from django.contrib.auth.models import User

        player_id = 1
        user = User.objects.get(id=player_id)
        avatar = Avatar(user)

        self.assertEqual(
            avatar.get_path(),
            '/tmp/cardstories-test/avatars/cache/000/000/1_small.jpg')
        self.assertEqual(
            avatar.get_path(size='small'),
            '/tmp/cardstories-test/avatars/cache/000/000/1_small.jpg')
        self.assertEqual(
            avatar.get_path(size='normal'),
            '/tmp/cardstories-test/avatars/cache/000/000/1_normal.jpg')
        self.assertEqual(
            avatar.get_path(size='large'),
            '/tmp/cardstories-test/avatars/cache/000/000/1_large.jpg')
        self.assertEqual(
            avatar.get_path(size='orig'),
            '/tmp/cardstories-test/avatars/cache/000/000/1_orig.jpg')

        self.unset_test_avatar_paths_settings()
Example #5
0
 def test_13avatar_update_from_response(self):
     """Test Avatar.update_from_response()
     Requires users fixture"""
     
     self.set_test_avatar_paths_settings()
     
     from website.cardstories.avatar import Avatar
     from django.contrib.auth.models import User
     
     player_id = 1
     user = User.objects.get(id=player_id)
     avatar = Avatar(user)
     avatar.generate_all_sizes = Mock()
     avatar.set_to_default = Mock()
     orig_image_path = avatar.get_path(size='orig')
     
     # 404
     response = Mock()
     response.status_code = 404
     avatar.update_from_response(response)
     avatar.set_to_default.assert_called_once_with()
     self.assertFalse(avatar.generate_all_sizes.called)
     avatar.set_to_default.reset_mock()
     
     # Not an image
     response.status_code = 200
     response.headers = {'Content-Type': 'text/html'}
     avatar.update_from_response(response)
     avatar.set_to_default.assert_called_once_with()
     self.assertFalse(avatar.generate_all_sizes.called)
     avatar.set_to_default.reset_mock()
     
     # Got an image
     response.status_code = 200
     response.headers = {'Content-Type': 'image/png'}
     response.content = "image content"
     avatar.update_from_response(response)
     avatar.generate_all_sizes.assert_called_once_with(orig_image_path)
     self.assertFalse(avatar.set_to_default.called)
     self.assertTrue(os.path.isfile(orig_image_path))
     self.assertEqual(open(orig_image_path).read(), "image content")
     
     self.unset_test_avatar_paths_settings()
Example #6
0
    def test_09avatar_get_url(self):
        """Test Avatar.get_url()
        Requires users fixture"""
        
        self.set_test_avatar_paths_settings()
        
        from website.cardstories.avatar import Avatar
        from django.contrib.auth.models import User
        
        player_id = 1
        user = User.objects.get(id=player_id)
        avatar = Avatar(user)
        
        self.assertEqual(avatar.get_url(), '/media/avatars/cache/000/000/1_small.jpg')
        self.assertEqual(avatar.get_url(size='small'), '/media/avatars/cache/000/000/1_small.jpg')
        self.assertEqual(avatar.get_url(size='normal'), '/media/avatars/cache/000/000/1_normal.jpg')
        self.assertEqual(avatar.get_url(size='large'), '/media/avatars/cache/000/000/1_large.jpg')

        self.unset_test_avatar_paths_settings()
Example #7
0
 def test_11avatar_set_to_default(self):
     """Test Avatar.set_to_default()
     Requires users fixture"""
     
     self.set_test_avatar_paths_settings()
     
     from website.cardstories.avatar import Avatar
     from django.contrib.auth.models import User
     
     player_id = 1
     user = User.objects.get(id=player_id)
     avatar = Avatar(user)
     
     avatar.generate_all_sizes = Mock()
     avatar.set_to_default()
     avatar.generate_all_sizes.assert_called_once_with(os.path.join(settings.MEDIA_ROOT,
                                                                    settings.AVATARS_DEFAULT_SUBPATH,
                                                                    '%d.jpg' % player_id))
     self.assertTrue(os.path.isfile('/tmp/cardstories-test/avatars/cache/000/000/%d_orig.jpg' % player_id))
     
     self.unset_test_avatar_paths_settings()
Example #8
0
 def test_10avatar_in_cache(self):
     """Test Avatar.in_cache()
     Requires users fixture"""
     
     self.set_test_avatar_paths_settings()
     
     from website.cardstories.avatar import Avatar
     from django.contrib.auth.models import User
     
     player_id = 1
     user = User.objects.get(id=player_id)
     avatar = Avatar(user)
     
     self.assertFalse(avatar.in_cache())
     
     mkdir_p('/tmp/cardstories-test/avatars/cache/000/000')
     with open('/tmp/cardstories-test/avatars/cache/000/000/1_small.jpg', 'w') as f:
         f.write('ok')
         
     self.assertTrue(avatar.in_cache())
     
     self.unset_test_avatar_paths_settings()
Example #9
0
    def test_10avatar_in_cache(self):
        """Test Avatar.in_cache()
        Requires users fixture"""

        self.set_test_avatar_paths_settings()

        from website.cardstories.avatar import Avatar
        from django.contrib.auth.models import User

        player_id = 1
        user = User.objects.get(id=player_id)
        avatar = Avatar(user)

        self.assertFalse(avatar.in_cache())

        mkdir_p('/tmp/cardstories-test/avatars/cache/000/000')
        with open('/tmp/cardstories-test/avatars/cache/000/000/1_small.jpg',
                  'w') as f:
            f.write('ok')

        self.assertTrue(avatar.in_cache())

        self.unset_test_avatar_paths_settings()
Example #10
0
    def test_11avatar_set_to_default(self):
        """Test Avatar.set_to_default()
        Requires users fixture"""

        self.set_test_avatar_paths_settings()

        from website.cardstories.avatar import Avatar
        from django.contrib.auth.models import User

        player_id = 1
        user = User.objects.get(id=player_id)
        avatar = Avatar(user)

        avatar.generate_all_sizes = Mock()
        avatar.set_to_default()
        avatar.generate_all_sizes.assert_called_once_with(
            os.path.join(settings.MEDIA_ROOT, settings.AVATARS_DEFAULT_SUBPATH,
                         '%d.jpg' % player_id))
        self.assertTrue(
            os.path.isfile(
                '/tmp/cardstories-test/avatars/cache/000/000/%d_orig.jpg' %
                player_id))

        self.unset_test_avatar_paths_settings()
Example #11
0
    def test_13avatar_update_from_response(self):
        """Test Avatar.update_from_response()
        Requires users fixture"""

        self.set_test_avatar_paths_settings()

        from website.cardstories.avatar import Avatar
        from django.contrib.auth.models import User

        player_id = 1
        user = User.objects.get(id=player_id)
        avatar = Avatar(user)
        avatar.generate_all_sizes = Mock()
        avatar.set_to_default = Mock()
        orig_image_path = avatar.get_path(size='orig')

        # 404
        response = Mock()
        response.status_code = 404
        avatar.update_from_response(response)
        avatar.set_to_default.assert_called_once_with()
        self.assertFalse(avatar.generate_all_sizes.called)
        avatar.set_to_default.reset_mock()

        # Not an image
        response.status_code = 200
        response.headers = {'Content-Type': 'text/html'}
        avatar.update_from_response(response)
        avatar.set_to_default.assert_called_once_with()
        self.assertFalse(avatar.generate_all_sizes.called)
        avatar.set_to_default.reset_mock()

        # Got an image
        response.status_code = 200
        response.headers = {'Content-Type': 'image/png'}
        response.content = "image content"
        avatar.update_from_response(response)
        avatar.generate_all_sizes.assert_called_once_with(orig_image_path)
        self.assertFalse(avatar.set_to_default.called)
        self.assertTrue(os.path.isfile(orig_image_path))
        self.assertEqual(open(orig_image_path).read(), "image content")

        self.unset_test_avatar_paths_settings()