Esempio n. 1
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()
Esempio n. 2
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)
Esempio n. 3
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()
Esempio n. 4
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()
Esempio n. 5
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()
Esempio n. 6
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()