Created
June 5, 2021 09:41
-
-
Save dkirkham/9a9982652f17f2c4daf88a0323b260e4 to your computer and use it in GitHub Desktop.
Wagtail tests, creating image file to match JSON fixtures
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from wagtail.tests.utils import WagtailPageTests | |
import os | |
import PIL.Image | |
from django.core.files.images import ImageFile | |
from wagtail.images import get_image_model | |
Image = get_image_model() | |
def make_test_image_file(filename='hero.jpg', colour='white', size=(960, 450)): | |
if os.access(filename, os.R_OK): | |
return ImageFile(filename) | |
ext = os.path.splitext(filename)[1].lower() | |
if ext == '.jpg' or ext == '.jpeg': | |
image_type = ('RGB', 'JPEG') | |
elif ext == '.png': | |
image_type = ('RGBA', 'PNG') | |
else: | |
raise ValueError("Cannot determine intended image type for %s" % filename) | |
image = PIL.Image.new(image_type[0], size, colour) | |
image.save(filename, image_type[1]) | |
return ImageFile(filename) | |
class ImageFixturesMixin: | |
def setUp(self): | |
super(ImageFixturesMixin, self).setUp() | |
for img in Image.objects.all(): | |
make_test_image_file( | |
filename=settings.MEDIA_ROOT + img.file.name, | |
size=(img.width, img.height), | |
colour="black", | |
) | |
class HomePageTests(ImageFixturesMixin, WagtailPageTests): | |
fixtures = ["test_base.json"] | |
def test_empty_home_page(self): | |
# implement tests here... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment