From d559cb02da30f74debbb1fc3a46de0df134d2d80 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Thu, 27 Oct 2022 08:41:03 +0200 Subject: [PATCH] Refs #19215 -- Fixed admin_widgets tests if Pillow isn't installed. Follow up to c0fc1b5302f5d9d82e2255fb5758321fbac34949. --- tests/admin_widgets/models.py | 16 +++++++++++----- tests/admin_widgets/tests.py | 3 +++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/tests/admin_widgets/models.py b/tests/admin_widgets/models.py index 26eaf5d243..0113ecb7c8 100644 --- a/tests/admin_widgets/models.py +++ b/tests/admin_widgets/models.py @@ -5,8 +5,13 @@ from django.contrib.auth.models import User from django.core.files.storage import FileSystemStorage from django.db import models -temp_storage_dir = tempfile.mkdtemp() -temp_storage = FileSystemStorage(temp_storage_dir) +try: + from PIL import Image +except ImportError: + Image = None +else: + temp_storage_dir = tempfile.mkdtemp() + temp_storage = FileSystemStorage(temp_storage_dir) class MyFileField(models.FileField): @@ -182,9 +187,10 @@ class Advisor(models.Model): class Student(models.Model): name = models.CharField(max_length=255) - photo = models.ImageField( - storage=temp_storage, upload_to="photos", blank=True, null=True - ) + if Image: + photo = models.ImageField( + storage=temp_storage, upload_to="photos", blank=True, null=True + ) class Meta: ordering = ("name",) diff --git a/tests/admin_widgets/tests.py b/tests/admin_widgets/tests.py index bf26c1edc1..70b1233ef4 100644 --- a/tests/admin_widgets/tests.py +++ b/tests/admin_widgets/tests.py @@ -3,6 +3,7 @@ import os import re from datetime import datetime, timedelta from importlib import import_module +from unittest import skipUnless try: import zoneinfo @@ -38,6 +39,7 @@ from .models import ( Company, Event, Honeycomb, + Image, Individual, Inventory, Member, @@ -1774,6 +1776,7 @@ class RelatedFieldWidgetSeleniumTests(AdminWidgetSeleniumTestCase): self.assertEqual(profiles[0].user.username, username_value) +@skipUnless(Image, "Pillow not installed") class ImageFieldWidgetsSeleniumTests(AdminWidgetSeleniumTestCase): def test_clearablefileinput_widget(self): from selenium.webdriver.common.by import By