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()
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()
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)
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()
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()
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()
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()
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()
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()