From e496d18dc49fc322a131e4669054d42e7d8421a6 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Wed, 16 Oct 2019 14:58:21 +0100 Subject: [PATCH] Add tests for webp format conversion --- wagtail/images/tests/test_image_operations.py | 32 ++++++++++++++++++- wagtail/images/tests/utils.py | 7 ++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/wagtail/images/tests/test_image_operations.py b/wagtail/images/tests/test_image_operations.py index 78c718df9..ac8274707 100644 --- a/wagtail/images/tests/test_image_operations.py +++ b/wagtail/images/tests/test_image_operations.py @@ -7,7 +7,8 @@ from wagtail.core import hooks from wagtail.images import image_operations from wagtail.images.exceptions import InvalidFilterSpecError from wagtail.images.models import Filter, Image -from wagtail.images.tests.utils import get_test_image_file, get_test_image_file_jpeg +from wagtail.images.tests.utils import ( + get_test_image_file, get_test_image_file_jpeg, get_test_image_file_webp) class WillowOperationRecorder: @@ -671,3 +672,32 @@ class TestBackgroundColorFilter(TestCase): file=get_test_image_file(), ) self.assertRaises(ValueError, fil.run, image, BytesIO()) + + +class TestWebpFormatConversion(TestCase): + def test_webp_convert_to_png(self): + """by default, webp images will be converted to png""" + + fil = Filter(spec='width-400') + image = Image.objects.create( + title="Test image", + file=get_test_image_file_webp(), + ) + out = fil.run(image, BytesIO()) + + self.assertEqual(out.format_name, 'png') + + @override_settings( + WAGTAILIMAGES_FORMAT_CONVERSIONS={'webp': 'webp'} + ) + def test_override_webp_convert_to_png(self): + """WAGTAILIMAGES_FORMAT_CONVERSIONS can be overridden to disable webp conversion""" + + fil = Filter(spec='width-400') + image = Image.objects.create( + title="Test image", + file=get_test_image_file_webp(), + ) + out = fil.run(image, BytesIO()) + + self.assertEqual(out.format_name, 'webp') diff --git a/wagtail/images/tests/utils.py b/wagtail/images/tests/utils.py index 885d01001..2c48b1266 100644 --- a/wagtail/images/tests/utils.py +++ b/wagtail/images/tests/utils.py @@ -20,3 +20,10 @@ def get_test_image_file_jpeg(filename='test.jpg', colour='white', size=(640, 480 image = PIL.Image.new('RGB', size, colour) image.save(f, 'JPEG') return ImageFile(f, name=filename) + + +def get_test_image_file_webp(filename='test.webp', colour='white', size=(640, 480)): + f = BytesIO() + image = PIL.Image.new('RGB', size, colour) + image.save(f, 'WEBP') + return ImageFile(f, name=filename)