def test_generate_thumbnail_bad_image(self): text_file = ContentFile("Lorem ipsum dolor sit amet. Not an image.") self.storage.save('avatars/invalid.jpg', text_file) instance = models.TestModel(avatar='avatars/invalid.jpg') generate = lambda: instance.avatar.generate_thumbnail( {'size': (300, 300)}) self.assertRaises(IOError, generate)
def test_serialization(self): instance = models.TestModel(avatar='avatars/avatar.jpg') self.assertEqual('/media/avatars/avatar.jpg.100x100_q85.jpg', instance.avatar['small'].url) new_instance = pickle.loads(pickle.dumps(instance)) self.assertEqual('/media/avatars/avatar.jpg.100x100_q85.jpg', new_instance.avatar['small'].url)
def test_saving_image_field_with_resize_source(self): # Ensure that saving ThumbnailerImageField with resize_source enabled # using instance.field.save() does not fail instance = models.TestModel(avatar='avatars/avatar.jpg') instance.picture.save( 'file.jpg', ContentFile(instance.avatar.file.read()), save=False) self.assertEqual(instance.picture.width, 10)
def test_saving_image_field_with_resize_source_different_ext(self): instance = models.TestModel(avatar='avatars/avatar.jpg') instance.picture.save('file.gif', ContentFile(self._read_filefield( instance.avatar)), save=False) self.assertEqual(instance.picture.name, 'pictures/file.jpg')
def test_delete_thumbnails(self): instance = models.TestModel(avatar='avatars/avatar.jpg') source_path = instance.avatar.path thumb_paths = ( instance.avatar.get_thumbnail({'size': (300, 300)}).path, instance.avatar.get_thumbnail({'size': (200, 200)}).path, instance.avatar.get_thumbnail({'size': (100, 100)}).path, ) self.assertTrue(os.path.exists(source_path)) for path in thumb_paths: self.assertTrue(os.path.exists(path)) instance.avatar.delete_thumbnails() self.assertTrue(os.path.exists(source_path)) for path in thumb_paths: self.assertFalse(os.path.exists(path))
def test_get_thumbnails(self): instance = models.TestModel(avatar='avatars/avatar.jpg') instance.avatar.get_thumbnail({'size': (300, 300)}) instance.avatar.get_thumbnail({'size': (200, 200)}) self.assertEqual(len(list(instance.avatar.get_thumbnails())), 2)
def test_generate_thumbnail_alias_0x0_size(self): instance = models.TestModel(avatar='avatars/avatar.jpg') self.assertRaises(EasyThumbnailsError, instance.avatar.generate_thumbnail, {'size': (0, 0)})
def test_generate_thumbnail_alias_bad_image(self): text_file = ContentFile("Lorem ipsum dolor sit amet. Not an image.") self.storage.save('avatars/invalid.jpg', text_file) instance = models.TestModel(avatar='avatars/invalid.jpg') generate = lambda: instance.avatar['small'] self.assertRaises(InvalidImageFormatError, generate)
def test_generate_thumbnail(self): instance = models.TestModel(avatar='avatars/avatar.jpg') thumb = instance.avatar.generate_thumbnail({'size': (300, 300)}) self.assertEqual((thumb.width, thumb.height), (300, 225))