def setUp(self): # Create an image. image_fd, image_path = tempfile.mkstemp(suffix='.jpg') os.close(image_fd) Image.new('RGB', (1, 1)).save(image_path, 'JPEG') # Create a Photo object. user = User.objects.create_user('adam', '*****@*****.**', 'adampassword') self.album = Album.objects.create(owner=user, name="Test") photo = Photo() photo.owner = user image = open(image_path) photo.image = ImageFile(image) photo.album = self.album photo.is_jpeg = True photo.save() image.close() os.remove(image_path) photo.create_thumbnail() self.client.login(username='******', password='******')
def runTest(self): # Create a JPEG with an embedded thumbnail. image_fd, image_path = tempfile.mkstemp(suffix='.jpg') os.close(image_fd) thumb_fd, thumb_path = tempfile.mkstemp(suffix='.jpg') os.close(thumb_fd) image = Image.new('RGB', (640, 480)) image.save(image_path, 'JPEG') thumb = image.copy() thumb.thumbnail((160, 120)) thumb.save(thumb_path, 'JPEG') # Write the thumbnail to the image metadata. metadata = pyexiv2.Image(image_path) metadata.readMetadata() metadata.setThumbnailFromJpegFile(thumb_path) metadata.writeMetadata() os.remove(thumb_path) # Create Photo model object. user = User.objects.create(username="******") album = Album.objects.create(owner=user, name="Test") photo = Photo() photo.owner = user image = open(image_path) photo.image = ImageFile(image) photo.album = album photo.is_jpeg = True photo.save() image.close() os.remove(image_path) # Create and verify the thumbnail. photo.create_thumbnail() photo.save() thumb = Image.open(photo.thumbnail.path) self.assertEqual(thumb.size[0] * thumb.size[1], 19200) metadata = pyexiv2.Image(photo.image.path) metadata.readMetadata() embedded = metadata.getThumbnailData()[1] external = open(photo.thumbnail.path).read() self.assertEqual(embedded, external) # Test JPEG without thumbnail already embedded. image = Image.new('RGB', (640, 480)) image.save(image_path, 'JPEG') photo = Photo() photo.owner = user image = open(image_path) photo.image = ImageFile(image) photo.album = album photo.is_jpeg = True photo.save() image.close() os.remove(image_path) photo.create_thumbnail() photo.save() thumb = Image.open(photo.thumbnail.path) self.assertEqual(thumb.size[0] * thumb.size[1], 19200) metadata = pyexiv2.Image(photo.image.path) metadata.readMetadata() embedded = metadata.getThumbnailData()[1] external = open(photo.thumbnail.path).read() self.assertEqual(embedded, external) # Test BMP. image_fd, image_path = tempfile.mkstemp(suffix='.bmp') os.close(image_fd) image = Image.new('RGB', (640, 480)) image.save(image_path, 'BMP') photo = Photo() photo.owner = user image = open(image_path) photo.image = ImageFile(image) photo.album = album photo.is_jpeg = False photo.save() image.close() os.remove(image_path) photo.create_thumbnail() photo.save() thumb = Image.open(photo.thumbnail.path) self.assertEqual(thumb.size[0] * thumb.size[1], 19200) # Test small image. image = Image.new('RGB', (80, 60)) image.save(image_path, 'JPEG') photo = Photo() photo.owner = user image = open(image_path) photo.image = ImageFile(image) photo.album = album photo.is_jpeg = True photo.save() image.close() os.remove(image_path) self.assertEqual(photo.create_thumbnail(), None) photo.save() thumb = Image.open(photo.thumbnail.path) self.assertEqual(thumb.size, (80, 60)) metadata = pyexiv2.Image(photo.image.path) metadata.readMetadata() embedded = metadata.getThumbnailData()[1] external = open(photo.thumbnail.path).read() self.assertEqual(embedded, external) User.objects.all().delete() Album.objects.all().delete() Photo.objects.all().delete()